Я новичок в VBA, и я пытаюсь вставить функцию VLOOKUP
.Вставка функции в диапазон ячеек
Я получаю данные с веб-страницы и после некоторого автофильтрации и автоматического удаления данные сжимаются до меньшего размера. Но поскольку это динамические данные, последняя строка всегда изменяется.
Мои данные, как это:
A B C
FleetType MSN Registration
У меня есть регистрация (C
) заполнена, и вы хотите, чтобы найти тип флота, который указан в другом листе.
Я попытался вставить формулу с помощью FormulaR1C1
, но в итоге получить сообщение 1004. Я также пытался использовать Application.VLookup
, а также получить сообщение 1004.
Поскольку я не мог выполнить эту работу, так как я знаю, что первые две буквы регистрации дают представление о типе флота, я установил вложенную функцию IF
и попытался ее вставить; без везения также.
Это sub
Im пытается сделать его запустить (не удалялись те, которые я пробовал):
Sub formuller()
Worksheets("Data").Select
Worksheets("Data").Activate
'range("A1:A600").Formula = "=IF(LEFT(D2;2)="JK";"Boeing";IF(LEFT(D2;2)="JG";"Boeing";IF(LEFT(D2;2)="JF";"Boeing";IF(LEFT(D2;2)="JH";"Boeing";IF(LEFT(D2;2)="JV";"Boeing";IF(LEFT(D2;2)="JJ";"Boeing";IF(LEFT(D2;2)="JY";"Boeing";IF(LEFT(D2;2)="LJ";"Boeing";"Airbus"))))))))"
On Error Resume Next
Range("A1:A2").FormulaR1C1 = "=IF(LEFT(RC[3];2)=""JK"";""Boeing"";IF(LEFT(RC[3];2)=""JG"";""Boeing"";IF(LEFT(RC[3];2)=""JF"";""Boeing"";IF(LEFT(RC[3];2)=""JH"";""Boeing"";IF(LEFT(RC[3];2)=""JV"";""Boeing"";IF(LEFT(RC[3];2)=""JJ"";""Boeing"";IF(LEFT(RC[3];2)=""JY"";""Boeing"";IF(LEFT(RC[3];2)=""LJ"";""Boeing"";""Airbus""))))))))"
On Error GoTo 0
'Worksheets("Data").Range("A1:A600").FormulaR1C1 = "=VLOOKUP(RC[3];Filo!R1C1:R309C3;3;FALSE)"
Есть ли способ обойти это? Все, о чем я прошу, - это просто использовать старый добрый VLookup
в проекте VBA.
Измените ';' на ',' и посмотрите, работает ли оно. 'FormulaR1C1' использует запятую в качестве разделителя поля формулы, вне зависимости от вашего локального разделителя формул. – BrakNicku
Спасибо, работал как шарм. –