Страницы: 1
RSS
Формула ВПР в VBA - где ошибка в коде?
 

Подскажите пожалуйста почему не работает код?

Исходная формула

=ВПР(A2;ДВССЫЛ("Табель!"&ПСТР(АДРЕС(1;ПОИСКПОЗ("pernr";Табель!1:1;0);4);1;1)&":W");ПОИСКПОЗ("age_y";Табель!1:1;0)-ПОИСКПОЗ("pernr";Табель!1:1;0)+1;0)

Sub ККК()

lr = Range("A" & Rows.Count).End(xlUp).Row

  fStr = "=ВПР(A2;ДВССЫЛ( Chr(34) & "Табель!" & Chr(34)   & ПСТР(АДРЕС(1;ПОИСКПОЗ( Chr(34) & "pernr" & Chr(34)  ;Табель!1:1;0);4);1;1) &" & chr(34) :W  " & chr(34)  );ПОИСКПОЗ( chr(34) & "age_y" & chr(34)  ;Табель!1:1;0)-ПОИСКПОЗ(chr(34) & "pernr" & chr(34) " ;Табель!1:1;0)+1;0)"

With Range("I2")

      .FormulaLocal = fStr

      .AutoFill Destination:=Range("I2:I" & lr), Type:=xlFillValues

End With

Range("i2:i" & lr).Copy

Range("i2:i" & lr).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

      :=False, Transpose:=False

End Sub

 
а почему она должна работать? VBA формула так не пишется. Для VBA fStr = WorksheetFunction.VLookup(тут разбирайтесь)
 
Roman-ev, код корректно оформите в сообщении тэгом кнопочка <…>. Это вы не читали?
используйте разделитель не привычный для вас ; а привычный для системы ,

и от себя добавлю, исходная формула  - не оптимальна, но это уже другая тема.
Изменено: БМВ - 06.03.2019 13:42:41
По вопросам из тем форума, личку не читаю.
 
Roman-ev, включите макрорекордер и вставьте вашу формулу в ячейку вручную. Завершите запись и посмотрите, что получилось. Скопируйте в код.
Мне кажется, вы запутались в многочисленных кавычках-амперсандах
Изменено: Sceptic - 06.03.2019 13:37:48
 
Попробуйте использовать код из файла во вложении, может поможет.
 
ТС вроде хотел конвертировать формулы в макросы из заменяющие) Если верить предыдущей закрытой теме...
Страницы: 1
Наверх