VBA VLookUp просматривает наборы данных и помещает подходящее слово в выбранные ячейки - PullRequest
0 голосов
/ 05 ноября 2019

Мне нужно создать VBA VlookUp, который будет проходить через столбцы от A до H на вкладке Sheet2 (table_array), сопоставлять его со столбцом V (значение look_up) на листе 1 и помещать соответствующие результаты (который является индексом столбца). и это в столбце 7) в ячейке AF. Я смог проверить это для очень небольшого диапазона значений, однако это не работает для всех моих наборов данных. Колонка V имеет более 15000 ячеек! Ниже приведен мой код, но он возвращает ошибку. Пожалуйста, помогите

Sub ADDCLM()
Dim table_Row as Long
Dim table_Clm as Long
Dim LastRow as Long 

LastRow = .Cells(.Rows.Count, "V").End(xlUp).Row
Table1 = Sheet1.Range("V2:V" & LastRow)
Table2 = Sheet2.Range("A:H") 

New_Row = Sheet1.Range("AF2").Row
New_Clm = Sheet1.Range("AF2").Column

For Each c1 in Table1
    Sheet1.Cells(New_Row, New_Clm) = Application.WorksheetFunction.VLookup(c1, Table2, 7, False)
    New_Row = New_Row + 1
Next c1
End Sub

В Excel так выглядит формула: например, для ячейки AF2 =VLOOKUP(V2;Sheet2!A:H;7;FALSE)

Я получаю ошибку времени выполнения 424 в строке table2 = ...

1 Ответ

0 голосов
/ 06 ноября 2019

Итак, я смог найти решение своей проблемы. Я переименовал свой Sheet2, чтобы отразить название листа, затем внес некоторые изменения в код с разными источниками, которые я видел в Интернете.

Sub ADDCLM()

    Dim table2 As Range
    Set table2 = Sheets("RD data").Range("A:H")
    Dim lastRow As Long
    With Sheet1
        lastRow = .Cells(.Rows.Count, "V").End(xlUp).Row
        With .Range("AF2:AF" & lastRow)
            .FormulaR1C1 = "=VLOOKUP(RC22," & table2.Address(, , xlR1C1, True) & ", 7, False)"
            .Value = .Value
        End With
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...