Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 451 След.
Сколько раз определенное слово встречается в таблице, НЕ количество ячеек, Необходимо посчитать количество повторений именно определенного слова, а не ячеек. Не макроссом, формулой
 
Код
=СУММ(ДЛСТР(A2:A6)-ДЛСТР(ПОДСТАВИТЬ(A2:A6;"KTE";)))/3

вводится как формула массива - тремя клавишами Ctrl+Shift+Enter.
Если вводить как обычную, то такая:
Код
=СУММПРОИЗВ(ДЛСТР(A2:A6)-ДЛСТР(ПОДСТАВИТЬ(A2:A6;"KTE";)))/3

Основной принцип работы формулы описан здесь: Как подсчитать количество повторений
Изменено: Дмитрий(The_Prist) Щербаков - 27.09.2022 16:19:52
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Установка из VBA в ячейку функции, написанной кириллицей, При вводе функции, написанной кириллицей подставляется знак "собака" (@)
 
Связано с тем, что свойство Formula всегда воспринимается в английской локализации. НО. Если хотите записать формулу на своей локализации(той, что на момент выполнения макроса указана для Excel) - используйте свойство FormulaLocal. Но это не рекомендуется, т.к. на других ПК с локализацией, отличной от Вашей это вызовет ту же ошибку, что Вы описали.
А знак собаки появляется потому, что у Вас новая версия Excel, которая поддерживает символ неявного пересечения областей. И т.к. Excel на момент записи в ячейку формулы не может определить её и вычислить - он подставляет знак собаки, чтобы указать только на одну ячейку.
Изменено: Дмитрий(The_Prist) Щербаков - 27.09.2022 16:07:59
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Формула "если" в вычисляемом поле сводной таблицы
 
В данном конкретном случае можно и средствами сводной и вычисляемых полей сделать нужное отображение. Но если условий будет больше 3 - то уже доп. столбцы в исходных данных.
Итак, создаем вычисляемое поле "Доходность_АВС" в сводной и прописываем в нем формулу:
Код
=ЕСЛИ(Доходность <0,3;-1;ЕСЛИ(Доходность >0,5;1;0))

далее выделяем любую ячейку в созданном столбце - Правая кнопка мыши -Числовой формат. Выбираем "(все форматы)"(самый последний пункт) и вписываем следующий:
"A";"C";"B"
Числовой формат в данном случае выводит букву в зависимости от результата формулы. А работает числовой формат так:
  • первый раздел("А") - больше нуля
  • второй раздел("С") - меньше нуля
  • третий раздел("В") - равно нулю
Файл с одним таким полем приложил.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка Duplicate declaration in current scope
 
Цитата
New написал:
при запуске процедуры сразу выделяется память под все указанные Dim
именно так. Все это происходит на стадии можно сказать "прекомпиляции" - когда VBA проверяет "жизнеспособность" кода перед его выполнением.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
выдает что LoadPicture не определена ...
 
Не всегда это может сработать. VBA может начать ругаться еще на стадии компиляции кода, а без недостающих библиотек сделать этого не получится. И мы получим ошибку раньше, чем что-то подключим. Но если код в модуле UserFrom и проблема именно в том, что используется какой-то метод из какой-то библиотеки - то можно попробовать при открытии проверять наличие и если такой нет - подключить. Вот здесь уже разбиралось:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=59316
там есть все необходимые коды и ссылки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
выдает что LoadPicture не определена ...
 
Цитата
sokol92 написал:
Так можно и отключить
ну это понятно. Но это же надо было специально сделать  ;) Не думаю, что это можно было сделать случайно
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как разархивировать архив RAR через VBA
 
Цитата
ne.bla.bla написал:
Почему?
потому что привязываетесь к конкретной учетной записи. На другом ПК такой учетки может не быть.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Power Query Ошибка при применении Столбца сведения, При применении столбца сведения выдает ошибку "Слишком много элементов для выполнения операции"
 
Без файла вряд ли кто-то решиться давать конкретный ответ. Но судя по всему здесь подойдет List.Split, т.к. кол-во строк для каждого блока одинаковые.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
выдает что LoadPicture не определена ...
 
OLE Automation за это отвечает, так что с RefEdit можете смело убирать галку(он бывает глючит и если не используете в проекте - лучше убрать).
Но вообще странно, что OLE Automation не подхватилась изначально. Эта библиотека вроде как по умолчанию для всех файлов включена.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Ошибка Duplicate declaration in current scope
 
Цитата
RAN написал:
переменные лучше объявлять cразу после Sub
спорное утверждение. Когда-то да, когда-то нет. Зависит от величины кода. Иногда удобнее для определенных блоков переменные объявлять непосредственно перед блоком, в котором они используются. Хотя сам так делаю в основном на стадии тестирования и разработки кода - потом все равно переношу все в начало и разбиваю по типам. Но это исключительно для своего удобства, чтобы видеть какие переменные уже использовались.
nicex, Вам бы хоть основы основ почитать. Переменная во вложенном цикле это как спичка: если достали одну, то зажечь её два раза не получится, надо вторую доставать :)
Код
Dim arr, i As Long,i2 as Long
'используем переменную i - это внешний цикл
   For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row
 
        If Cells(i, 9) < 300 Then Cells(i, 10) = 0
 
Columns("R:R").Select
  arr = Array("темно-синий", "синий", _
  "ярко-синий", "синий", _
  "темно-синий", "синий")
'переменную i здесь нельзя уже использовать, т.к. она применяется в родительском цикле: For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row                                                                                                                                                                                                 
  For i2 = 0 To UBound(arr) Step 2
    Selection.Replace What:=arr(i2), Replacement:=arr(i2 + 1), LookAt:= _
      xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
      ReplaceFormat:=False
  Next

К слову, чтобы не поняли неверно: одну и ту же переменную можно использовать сколько угодно раз, но нельзя использовать одну и ту же для всех циклов, вложенных друг в друга. Вот простой пример. По сути это то, что написано у Вас сейчас:
Код
For i = 1 to 10
for i = 12 to 18
msgbox i 'какое же значение выводить VBA здесь, если i у нас при первом же проходе по такой логике может быть и 1 и 12?
next
next

Вы могли бы подумать, что при таком подходе VBA должен использовать только переменную из последнего цикла. Но...Ситуация 2:
Код
For i = 1 to 10 'цикл по строкам листа
for i = 12 to 18 'цикл по столбцам листа
msgbox Cells(i,i).Value 'какое же значение выводить VBA здесь, если мы не даем однозначно понять какая из i куда должна попасть?
next
next

Вот и весь сказ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как разархивировать архив RAR через VBA
 
Архивация/Извлечение из архива через VBA
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Откорректировать шаблон ТН, корректировка шаблона
 
Степан, не видя пример шаблона и не имея представления что надо получить в итоге желающих будет найти очень трудно.
Я вот по опыту знаю, что изменение какого-то шаблона под новые требования может занять и полдня. И это без учета времени, потраченного на выяснение что именно и как надо сделать. А эти выяснения могут и час занять и два. Вот и подумайте, кто захочет тратить время только на выяснение задачи, чтобы потом понять, что работа выйдет в 10 раз дороже, чем Вы готовы за неё заплатить.
На мой взгляд Вам надо хотя бы приложить имеющийся шаблон и примерный вид(хоть фото из инета) того, что хотите получить в итоге. Тогда потенциальный исполнитель хоть представление какое-то будет иметь стоит ли время тратить на выяснение того, какие нужны изменения и браться ли за заказ.

P.S. не претендую
Изменено: Дмитрий(The_Prist) Щербаков - 24.09.2022 12:30:12
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Power Query в версиях Office, наличие PQ в Excel в различных версиях Office
 
Цитата
Vladimir Ch написал:
в 2013-ом она есть
вообще-то нет. Для 2010 и 2013 офиса Power Query надо скачивать и устанавливать с сайта отдельно.
А вот PowerPivot действительно встроена в 2013, но доступ к ней через панель есть не во всех лицензиях вроде бы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Неверная ссылка вперед или ссылка на неоткомпилированный тип
 
Цитата
Олег Ирхин написал:
Такая же беда
и такой же ответ
Цитата
Дмитрий(The_Prist) Щербаков написал:
Приложите пример со своим кодом, таблицами и ошибками - тогда будет о чем говорить
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
ошибка 438 при использовании vlookup
 
Цитата
olege1983 написал:
я исправил
на что именно? Попробуйте записать так:
Код
Application.VLookup(Rz, Range("Лист1!B2:f90"), 5, False)

но здесь может быть ошибка, если на момент выполнения кода активна не так книга, из которой надо брать диапазон и в ней нет листа с именем "Лист1". Поэтому лучше универсально:
Код
Application.VLookup(Rz, ThisWorkbook.Worksheets("Лист1").Range("B2:f90"), 5, False)

но учитывайте, что здесь обращение идет к Лист1 той книги, в которой записан макрос.
Ну и для полноты картины я бы порекомендовал ознакомиться со статьей: Как обратиться к диапазону из VBA
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование отфильтрованного диапазона в новую книгу и отправка новой книги по почте (Outlook) определенному адресату.
 
Цитата
evgeniygeo написал:
изначально не понимаю, зачем временный файл куда-то сохранять
потому что невозможно вложить в письмо не сохраненный файл.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Копирование отфильтрованного диапазона в новую книгу и отправка новой книги по почте (Outlook) определенному адресату.
 
Цитата
evgeniygeo написал:
ActiveWorkbook.Close False
не соглашусь. Скорее надо после строки
Код
.Send 'Display, если необходимо просмотреть сообщение,  Send -  отправлять без просмотра

добавить такие:
Код
Kill sFolderPath & sFileName 'удаляем временный файл
DoEvents
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Удаление сообщений
 
Цитата
написал:
Чтоб редактировать, надо загрузить редактор, выделить текст, придумать какую-то фразу..
ржу в голос  :D  А чтобы новое сообщение закинуть, думать, получается, не надо?  :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Использование макроса расположенного в надстройке
 
Цитата
написал:
Полез я
ну, лазить надо правильно :) Ни в какие папки заходить не надо - все ищется в окне References. Открываете надстройку - переименовываете VB-проект надстройки во что-то вменяемое(Tools -VBAProject Properties) - так и искать проект надстройки потом будет проще(т.к. по умолчанию для всех книг имя проекта одно и то же - VBAProject) и ошибок при подключении не возникнет.
Потом открываете нужный файл и в окне References просто ставите галку напротив проекта надстройки. Все.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Удаление сообщений
 
При текущем разрешении на право изменять свои сообщения без ограничения по времени - возможность удаления сообщений полностью выглядит вполне удобным. Это избавит от лишнего мусора в теме(вроде тех же Del). Правда не знаю как здесь идет привязка к номерам сообщений - но по идее, нумерация должна идти по ID, который для каждого сообщения уникальный и не сдвигается при удалении сообщений. Поэтому при удалении сообщения, на которое ведет ссылка, мы просто должны по идее попасть на Error 404(страница не существует).
Единственное, что меня в этом всем не устраивает - если кто-то нахамил и т.п., а потом удалил - сообщения оппонентов могут выглядеть как минимум непонятно, а в большинстве случаев и вовсе глупо и нелепо - человек сам с собой чего-то там решает и ругается  :D  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Использование макроса расположенного в надстройке
 
А метод Application.Run? Плюс можно поставить в итоговом файле ссылку в Tools-References на VB-проект своей надстройки и вызывать макросы из неё можно будет как из самого себя.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Отсечь полученные из массива данные
 
Уточняйте, что это GoogleSheets - это не одно и тоже, что Excel :)
По сути, должна помочь TEXT. Если надо отсечь все цифры после запятой и оставить только целое:
Код
&text(Z18;"0")&
Если надо оставить два знака после запятой:
Код
&text(Z18;"0.00")&
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Быстрое изменение типа ссылок в диапазоне
 
Без примера сложно сказать. Известны случаи, когда Application.InputBox давал сбой на листах с условным фоматированием.
Попробуйте заменить строку
Код
Set rR = Application.InputBox("Выделите диапазон с формулами", "www.excel-vba.ru", , , , , , Type:=8)
на такую:
Код
Set rR = Selection
тогда перед выполнением кода надо заранее выделить диапазон ячеек, в которых надо поменять формулы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
HB
 
Присоединяюсь к поздравлениям! Здоровья, ясности ума и благополучия во всем!
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Как привязать кнопку на RibbonX к определенному листу?
 
событие GetEnabled в схеме XML(или getVisible). Так же придется использовать события активации листа и книги, плюс запоминать ссылку на Ribbon, чтобы обновлять состояние контролов после смены их состояния.
Код XML:
Код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui&quot; onLoad="Ribbon_Load">
   <ribbon startFromScratch="false">
      <tabs>
         <tab id="t" label="t">
            <group id="tt" label="tt" autoScale="true">
               <button id="ttt" image="The_Prist_Control" getEnabled="getEnabled" />
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>

Код VBA (в стандартном модуле):
Код
Option Explicit
Public oToEnableControl As IRibbonControl
Public m_Ribbon As IRibbonUI
'обрабатываем событе getEnabled
Sub getEnabled(control As IRibbonControl, ByRef enabled)
    If oToEnableControl Is Nothing Then
        Set oToEnableControl = control
    End If
    enabled = (ActiveSheet.Name = "Лист1")
    m_Ribbon.InvalidateControl oToEnableControl.ID
    m_Ribbon.Invalidate
End Sub
'запоминаем ссылку на свою панель
Sub Ribbon_Load(ribbonUI As IRibbonUI)
    Set m_Ribbon = ribbonUI
End Sub
код VBA в модуле ЭтаКнига:
Код
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If oToEnableControl Is Nothing Then
        Exit Sub
    End If
    getEnabled oToEnableControl, True
End Sub
остальные события обрабатываете по образу и подобию.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поиск слово без учета регистра
 
Два варианта:
1. В лоб - привести сравниваемые части к одному регистру(например, к верхнему):
Код
If UCase(Left(Sheet1.Cells(i, 4).Value, B)) = UCase(Left(Me.TextBoxSearchc.Text, B)) Then
2. В самом верху модуля записать строку:
Код
Option Compare Text
это заставит все функции внутри модуля сравнения делать эти самые сравнения без учета регистра.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
На каждом листе проставить дату взятую из названия листа
 
Цитата
Валерий Б написал:
на каждом листе книги проставить
Как получить имя листа формулой
и по мотивам статьи пишете в G1 формулу:
Код
=ДАТАЗНАЧ(ПОДСТАВИТЬ(ПСТР(ЯЧЕЙКА("filename";A2);ПОИСК("]";ЯЧЕЙКА("filename";A2))+1;6);"мая";"май")&" 2022")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Подскажите контакты хороших онлайн курсов по Power Bi., Или если кто-нибудь из форумчан выявит желание в частном порядке учить нас, готовы к обсуждению.
 
Цитата
написал:
просто держится на рекламе
когда-то был действительно хороший УЦ. Но уже лет 10 точно перерос из УЦ в УГ. Преподов толковых мало осталось - видимо ЗП не соответствует уровню и выгоднее на вольных хлебах зарабатывать, чем в Специалисте на ЗП.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA Назначить одну команду всем кнопкам в диапазоне
 
Цитата
написал:
добавление этих новых строк и будет уже осуществляться пользователем
значит надо написать отдельный код для добавления и удаления строк, а пользователю запретить это делать. Тогда проблем будет меньше как сейчас, так и в будущем.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA Назначить одну команду всем кнопкам в диапазоне
 
Цитата
написал:
Я-то только за упрощение
для начала Вам надо отказаться от элементов ActiveX(ClassType:="Forms.CommandButton.1"), если нужны именно кнопки. Их можно заменить простыми фигурами.
Но как выше уже написали - идея изначально не самая лучшая. Правильнее сделать одну кнопку, которая вызывает форму, но ориентируется на данные выделенной ячейки. Пользователь по-любому осознает после пары вызовов как это работает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 451 След.
Наверх