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

Страницы: 1 2 След.
Можно ли блокировать только возможность вырезать ячейку / ячейки
 
Sirius34, как вариант
Код
Application.CutCopyMode = False
Сортировка от А до Я внутри других строк с данными
 
realmen80, только одно приходит на ум форматируем как таблицу  нужный диапазон и сортируем как надо потом преобразуем в диапазон
Подсчет уникальных значений по условию(условиям), Не получается подсчитать уникальные значения в диапазоне дат.
 
Столкнулся с небольшой проблемой в подсчете количества уникальных значений в диапазоне дат.
Проблема в том что День начинается со Второй смены предыдущего дня, соответственно в данные должно попадать количество уникальных значений (Сегодня Iсмена и Вчера IIсмена). пока добавил  доп. столбец(диапазон указываю в ручную через счётз и уник).
Есть макрос из https://www.planetaexcel.ru/forum/?PAGE_NAME=message&FID=1&TID=92834&TITLE_S...
Код
=СЧЁТУНИКЕСЛИМН(
Рейсы[Гос.номер];
Рейсы[дата];$А$2;
Рейсы[смена];1)
+
СЧЁТУНИКЕСЛИМН(
Рейсы[Гос.номер];
Рейсы[дата];$А$2-1;
Рейсы[смена];2)
UDF работает правильно и правильно суммирует( но это не то что нужно)
В примере зеленым выделено как надо считать, желтым и синим как считает через UDF и формулу
Код
=СУММПРОИЗВ(((Лист1!$A$2:$A$29=Лист1!$A19))/СЧЁТЕСЛИМН(Лист1!$A$2:$A$29;Лист1!$A$2:$A$29&"";Лист1!$I$2:$I$29;Лист1!$I$2:$I$29&""))-1
Как решить подсчет уникальных значений Сегодня Iсмена,Вчера IIсмена не могу сообразить.
Изменено: Игорь Трофимов - 08.01.2025 12:05:17
Содержание книги из n листов c разбивкой по строка, Раздбивка ячейки макросом по строкам
 
Sanja,  просто огонь.
Узнал много нового про Split. И использование умных таблиц.
Содержание книги из n листов c разбивкой по строка, Раздбивка ячейки макросом по строкам
 
Цитата
написал:
1.Хранить обычный макрос в модуле Книги/Листа не запрещается, но не рекомендуется2.Самому себе готовить головную боль, в виде объединенных ячеек не запрещается, но не рекомендуется3.Хранить в одном столбце данные разных категорий (велосипед и его запчасти, например) не запрещается, но не рекомендуется
По 2 пункту полностью согласен.
По 3 пункту - это так надо (што бы никто не догадался) :)
Все красиво код отличный, но я все равно не могу его подстроить что бы выводилось именно в таком виде, т.е расшифровка идет после основной строки.
12200-G-000-CS-LAY-02801-04-D Rev. 02C 2200-АД25-АД2-131Уборка снегаОчистка дорошг; Погрузка в самосвалы; Вывоз
22200-G-000-CS-LAY-02801-04-D Rev. 02C 2200-АД25-АД2-131Очистка дорошг
32200-G-000-CS-LAY-02801-04-D Rev. 02C 2200-АД25-АД2-131Погрузка в самосвалы
42200-G-000-CS-LAY-02801-04-D Rev. 02C 2200-АД25-АД2-131Вывоз
Содержание книги из n листов c разбивкой по строка, Раздбивка ячейки макросом по строкам
 
Столкнулся с небольшой проблемой. При формировании списка на листе "Содержание" все формируется построчно с листов Данные 1.2.3 и т.д. в зависимости от кол-ва листов. Изменяемые данные выделены желтым.
Но есть ячейка I23 на каждом листе в которой идет текстовый перечень через разделитель " ; ",  я и не могу додуматься, как ячейку в макросе разделить и вывести как на листе "Содержание"
Код находится в "Эта книга", на листе  "Как надо" соответственно как надо.  
Формула выводит в ячейке G9 текущую дату, если в ячейке Н9 имеются значения.
 
Цитата
написал:
ISBLANK(H10) лучше соответствует условию задачи.
ЕПУСТО возвращает только значение истина или ложь, тут проще использовать ЕСЛИ, где можно задать условие истина или ложь.
Но это только мое мнение. :)  
Формула выводит в ячейке G9 текущую дату, если в ячейке Н9 имеются значения.
 
=ЕСЛИ(H9<>0;СЕГОДНЯ();0)
Только формат ячейки должен быть дата
Изменено: Игорь Трофимов - 20.01.2024 16:03:15
[ Закрыто] Посчитать кол-во ячеек в диапазоне между неделями, Пожалуйста помогите посчитать кол-во ячеек в диапазоне
 
Kate04121997, как то такс :)
а если вам надо формулу или макрос, то без файла никак.
Изменено: Игорь Трофимов - 15.12.2023 15:33:12
[ Закрыто] Проблема с формулой, Не могу исправить ошибку в формуле
 
Формула считает правильно. Условие неправильное.
Какой ответ должен быть?
Определить номер недели по дате
 
Цитата
написал:
не могу наладить номер недели ,перед началом недели в столбцах
А скакого дня у вас начинается неделя?
Посмотрите несколькими снособами в столбце S вычислил номер недели
Определить номер недели по дате
 
Для поиска номера недели важно определиться с какого дня начинается неделя. т.к. она может начинаться с Вс или с Пн или с Чт
При сохранении листов как файлы при выставленном флаге заменить формулы на значение, пользовательская функция сохраняется как ИМЯ
 
 К примеру прописал пользовательскую функцию CountCellsByColor  в ячейке B10, при сохранении через надстройку PLEX Сохранить как файлы с преобразованием в значения пользовательскую функцию пропускает и выдает в ячейке #ИМЯ?. А интегрированная функция CountByCellColor в ячейке В9 преобразуется нормально. В чем ошибка написания мной функции? Эти две функции привел как пример т.к. остальные прописанные функции так же не преобразуются значения.
Код
Function CountCellsByColor(rData As Range, cellRefColor As Range) As Long
Dim indRefColor As Long
Dim cellCurrent As Range
Dim cntRes As Long
Application.Volatile cntRes = 0
indRefColor = cellRefColor.Cells(1, 1).Interior.Color
For Each cellCurrent In rData
If indRefColor = cellCurrent.Interior.Color Then cntRes = cntRes + 1
Next cellCurrent
CountCellsByColor = cntRes
End Function
Пользовательская функция слетает при открытии другой книги или копировании ячейки., При сохранении листа как значения появляется #ИМЯ
 
Цитата
написал:
Обожаем такие вопросы  Книга на n-листов, куча модулей, UDF непонятно где - ребят, найдите все это и потом скажите где ошибка  Ну не первый день на форуме - ну можно же написать адрес конкретных ячеек и модули, где все прописано, а не заставлять изучать Ваш файл.
Прошу прощения, как то не включил соображалку, у меня тоже astral.dll ванговать не умеет.
Заодно поправил и вторую функцию.
Спасибо что подсказали на ошибку. Все работает
Код
Mach(Optional ФИО As String) 'Spec(ФИО As String, СпискиФИО As Range)
'Преобразуем в пользовательскую функцию формулу подстановки марки и госномера авто и тракторов =(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 1 смены];0);3);ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 2 смены];0);3));"")&"      "&ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 1 смены];0);4);ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 2 смены];0);4));""))&" "&(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 1 смены];0);3);ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 2 смены];0);3))&"          "&ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 1 смены];0);4);ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 2 смены];0);4));""))
On Error Resume Next
    Mach = WorksheetFunction.Index(ThisWorkbook.Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Водители").Range("J1:J100"), 0), 3) & "   " & _
        WorksheetFunction.Index(ThisWorkbook.Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Водители").Range("J1:J100"), 0), 4)
If Err Then
    Mach = WorksheetFunction.Index(ThisWorkbook.Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Водители").Range("L1:L100"), 0), 3) & "   " & _
        WorksheetFunction.Index(ThisWorkbook.Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Водители").Range("L1:L100"), 0), 4)
            End If
        On Error Resume Next
    Mach = WorksheetFunction.Index(ThisWorkbook.Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Машинисты").Range("J1:J100"), 0), 3) & "   " & _
WorksheetFunction.Index(ThisWorkbook.Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Машинисты").Range("J1:J100"), 0), 4)
    If Err Then
        Mach = WorksheetFunction.Index(ThisWorkbook.Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Машинисты").Range("L1:L100"), 0), 3) & "   " & _
              WorksheetFunction.Index(ThisWorkbook.Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, ThisWorkbook.Worksheets("Машинисты").Range("L1:L100"), 0), 4)
End If

End Function
Пользовательская функция слетает при открытии другой книги или копировании ячейки., При сохранении листа как значения появляется #ИМЯ
 
Прописал две функции Spec и Mach. Работают нормально, но при открытии другой любой книги, или при копировании ячейки с этой книги в другую они слетают в #ЗНАЧ. При сохранении листа как значения вместо значения появляется #ИМЯ.
Разобраться не могу почему так происходит.
Может кто нибудь подскажет как это исправить?
выход из процедуры если книга не найдена
 
Попробуйте вставить
Код
On Error GoTo ErrorHandler
.
.
.

ErrorHandler:    
MsgBox "Книга не найдена или не открыта"
Поиск и копирование данных с нескольких листов на другой лист. Нужен совет, Подстановка значений по условию/ям
 
Прописал две пользовательские функции  Spec и Mach все работает, но иногда они все таки теряются (при копирование любой ячейки с листа) в  #ЗНАЧ.
Исправить не получилось. Может кто сможет пофиксить эту фичу или баг? И как можно оптимизировать еще эти функции т.к. я подозреваю прописаны они через одно место
Код
Function Spec(Optional ФИО As String) 'Spec(ФИО As String, СпискиФИО As Range)
'Преобразование формулы поиска специальности в пользовательскую функцию =ЕСНД(ИНДЕКС(Списки;ПОИСКПОЗ(C10;Списки[Ф.И.О.];0);4);"")
If ФИО = "" Then ' если фио не найдено, что бы не выпадала в ошибку
    Spec = ""
        Else
            Spec = WorksheetFunction.Index(Worksheets("Списки").Range("A1:G300"), WorksheetFunction.Match(ФИО, Worksheets("Списки").Range("B1:B300"), 0), 4)
                  'WorksheetFunction.Index(Worksheets("Списки").Range("A1:G300"), WorksheetFunction.Match(ФИО, Worksheets("Списки").Range("B1:B300"), 0), 4)
'WorksheetFunction.Index(Worksheets("Списки").Range("A1:G300"), WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
                End If
End Function

Код
Function Mach(Optional ФИО As String) 'Spec(ФИО As String, СпискиФИО As Range)
'Преобразуем в пользовательскую функцию формулу подстановки марки и госномера авто и тракторов =(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 1 смены];0);3);ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 2 смены];0);3));"")&"      "&ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 1 смены];0);4);ИНДЕКС(Водители;ПОИСКПОЗ(C10;Водители[ФИО машиниста 2 смены];0);4));""))&" "&(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 1 смены];0);3);ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 2 смены];0);3))&"          "&ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 1 смены];0);4);ИНДЕКС(Машинисты;ПОИСКПОЗ(C10;Машинисты[ФИО машиниста 2 смены];0);4));""))
On Error Resume Next
    Mach = WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J100"), 0), 3) & "   " & _
        WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J100"), 0), 4)
If Err Then
    Mach = WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L100"), 0), 3) & "   " & _
        WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L100"), 0), 4)
            End If
        On Error Resume Next
    Mach = WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("J1:J100"), 0), 3) & "   " & _
WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("J1:J100"), 0), 4)
    If Err Then
        Mach = WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("L1:L100"), 0), 3) & "   " & _
              WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("L1:L100"), 0), 4)
End If

'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J100"), 0), 3) & "   " & _
                'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J100"), 0), 4)
                'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L100"), 0), 3) & "   " & _
              'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L100"), 0), 4)

'Mach = WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("J1:J100"), 0), 3) & "   " & _
        WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("J1:J100"), 0), 4)
        'WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("L1:L100"), 0), 3) & "   " & _
             'WorksheetFunction.Index(Worksheets("Машинисты").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Машинисты").Range("L1:L100"), 0), 4)
End Function
Изменено: Игорь Трофимов - 29.06.2023 12:48:56
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Доброго дня всем. Опять столкнулся с проблемой.  Сделал функцию Mach она должна искать по ФИО с листа Расстановка  на лисет Водители водителей и подставлять тип т/с и г/н его. Если функцию ввожу отдельно. т.е. для  1 смены и 2 смены, то она работает, а вот если через WorksheetFunction.IfError то сообщает #ЗНАЧ!. Как нужно функцию объеденить что бы выводила по нужной смене?
Код
Function Mach(Optional ФИО As String) 'Spec(ФИО As String, СпискиФИО As Range)
Mach = WorksheetFunction.IfError(WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J300"), 0), 3) & "   " & _
                WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J300"), 0), 4), _
                WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L300"), 0), 3) & "   " & _
                WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L300"), 0), 4))
            'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J300"), 0), 3) & "   " & _
                'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("J1:J300"), 0), 4)
                'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L300"), 0), 3) & "   " & _
                'WorksheetFunction.Index(Worksheets("Водители").Range("A1:L300"), WorksheetFunction.Match(ФИО, Worksheets("Водители").Range("L1:L300"), 0), 4)
             End Function
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Пользовательская функция заработала, помогите  убрать аргумент ФИО (должен автоматически вставлять активная ячейка -1)
Код
Function Spec(Optional ФИО As String) 
If ФИО = "" Then
     Spec = ""
         Else
             Spec = WorksheetFunction.Index(Worksheets("Списки").Range("A1:G300"), WorksheetFunction.Match(ФИО, Worksheets("Списки").Range("B1:B300"), 0), 4)
                 End If
 End Function 

Как в этом скрипте

Код
Sub Макрос()    ActiveCell.FormulaR1C1 = _        "=IFNA(INDEX(Списки,MATCH(RC[-1],Списки[Ф.И.О.],0),4),"""")"    Range("D18").SelectEnd Sub

Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
Цитата
Игорь Трофимов написал:
не работает пользовательская функция
1. На опечатку указали. Надо исправлять сразу, а не тянуть её из файла в файл
2. Оставьте эту функцию только в одном модуле. Сейчас у Вас в двух разных модулях повторяется одно имя функции. Это вводит в ступор Excel и поэтому не работает.
Проверил по отдельности части функции
Код
Worksheets("Списки").Range("A97:G97") 

Работает и выводит данный диапазон

Код
WorksheetFunction.Match(ФИО, СпискиФИО, 0)

Работает выводит номер позиции искомого значения ФИО

Вся вместе функция все равно не хочет работать. Где то я немного жопорук :qstn:

Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
Вместо
Worksheets("Списки")

должно быть
Worksheets("Списки").Range(...
Указал диапазон ячеек для поиска на листе Списки. К сожалению ничего не изменилось.
Может я как то не правильно проставил атрибуты аргументов?
Worksheets("Списки").Range("A97:G97") сделал не изменным т.к. его не нужно менять.
И вопрос разве без объявления диапазона ячеек на листе считать по всему листу не будет?
Код
Function Специал(ФИО As String, СпискиФИО As Range)
    Специал = WorksheetFunction.Index(Worksheets("Списки").Range("A97:G97"), WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
End Function
Перенос значений из одной ячейки в несколько
 
Цитата
написал:
Всем привет!

Имеется ячейка с данными вида: "xxx, xxx, xxx, xxx, xxx..." как перенести эти данные в столбец ячеек,
чтобы получилось следующее:

xxx
xxx
xxx
xxx
...

Спасибо!
Данные-текст по столбцам. т.е. через мастер распределения текста по столбцам.
Перенос значений из одной ячейки в несколько
 
=трансп(массив)
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
Цитата
Игорь Трофимов написал:
не работает пользовательская функция
1. На опечатку указали. Надо исправлять сразу, а не тянуть её из файла в файл
2. Оставьте эту функцию только в одном модуле. Сейчас у Вас в двух разных модулях повторяется одно имя функции. Это вводит в ступор Excel и поэтому не работает.
Опечатку исправил.
Функцию оставил только в одном модуле.
Убрал переменную "Списки" и назначил ее как ссылку на лист "Списки" или тут надо ссылку делать на таблицу в которой ищем значение?
Итог пользовательская функция  =Специал, так и выводит #ЗНАЧ! в ячейке D11, а обычные формулы работают корректно.
Код
Function Специал(ФИО As String, СпискиФИО As Range)
Специал = WorksheetFunction.Index(Worksheets("Списки"), WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
End Function
Изменено: Игорь Трофимов - 25.05.2023 12:46:13 (прикрепление файла)
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
Если делать все правильно, то все работает
PS Предполагаю, что _xlfn.IFNA это ЕСЛИОШИБКА, но проверять лень.
Да вы и я в написании фунции все делаем правильно, но не работает пользовательская функция.
Код
Sub Спец()
    Dim strFormula As String
strFormula = strFormula & "=ЕСНД(ИНДЕКС(Списки;ПОИСКПОЗ(C11;Списки[Ф.И.О.];0);4);"""")"
    Range("D11").FormulaLocal = strFormula
End Sub
Function Специалность(Списки As Range, ФИО As String, СпискиФИО As Range)
Специальность = WorksheetFunction.Index(Списки, WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
End Function
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
а где и что должно было измениться? в каком листе, в каких ячейках?
Данная формула нужна для вставки на листе расстановка в столбец Специальность. но ругается :-)
Изменено: Игорь Трофимов - 24.05.2023 16:12:29 (Скриншот удалил.)
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Цитата
написал:
Спс за внимательность но ничего не изменилось.
Код
Function Специальность(Списки As Range, ФИО As String, СпискиФИО As Range)
Dim
Специальность = WorksheetFunction.Index(Списки, WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
End Function
Что то я не то делаю.
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Сделал пользовательскую функцию к Столбцу специальность, но она не хочет работать.
Код
Function Специалность(Списки As Range, ФИО As String, СпискиФИО As Range)
Специальность = WorksheetFunction.Index(Списки, WorksheetFunction.Match(ФИО, СпискиФИО, 0), 4)
End Function
Пользовательская формула в VBA. Помощь в создании., Требуется создать пользовательскую формулу
 
Есть лист расстановка, данные в который попадают с 3 таблиц (персонал, машинисты, водители) макросы на столбцы специальность и примечание работают. Помогите создать пользовательскую функцию.
Код
Sub маш()
    Dim маш As String
маш = маш & "=(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ($C11;Водители[ФИО машиниста 1 смены];0);3);"
маш = маш & "ИНДЕКС(Водители;ПОИСКПОЗ($C11;Водители[ФИО машиниста 2 смены];0);3));"""")&""      ""&"
маш = маш & "ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Водители;ПОИСКПОЗ($C11;Водители[ФИО машиниста 1 смены];0);4);"
маш = маш & "ИНДЕКС(Водители;ПОИСКПОЗ($C11;Водители[ФИО машиниста 2 смены];0);4));""""))&"" ""&"
маш = маш & "(ЕСНД(ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ($C11;Машинисты[ФИО машиниста 1 смены];0);3);"
маш = маш & "ИНДЕКС(Машинисты;ПОИСКПОЗ($C11;Машинисты[ФИО машиниста 2 смены];0);3))&""          ""&"
маш = маш & "ЕСЛИОШИБКА(ИНДЕКС(Машинисты;ПОИСКПОЗ($C11;Машинисты[ФИО машиниста 1 смены];0);4);"
маш = маш & "ИНДЕКС(Машинисты;ПОИСКПОЗ($C11;Машинисты[ФИО машиниста 2 смены];0);4));""""))"

    Range("E11").FormulaLocal = маш
End Sub
Код
Sub Спец()
    Dim strFormula As String
strFormula = strFormula & "=ЕСНД(ИНДЕКС(Списки;ПОИСКПОЗ(C11;Списки[Ф.И.О.];0);4);"""")"
    Range("D11").FormulaLocal = strFormula
End Sub
Function Специалность(ФИО As Range)
Worksheet.Index
End Function
Поиск и копирование данных с нескольких листов на другой лист. Нужен совет, Подстановка значений по условию/ям
 
, да именно так надо. Но хотелось бы что бы это была пользовательская функция. спс
Страницы: 1 2 След.
Наверх