Как найти значение в столбце G другого листа, используя vlookup? - PullRequest
0 голосов
/ 29 мая 2019

Я работаю над листом с именем «Master Filtered», в котором значения столбца K должны быть заполнены поисковым значением из листа «Ndex Positions», столбец G.

Это фрагмент кода, который я написал

Sub MTL_OR_TOR()
Dim AcctNb As String
Dim result As String
Dim myRange As Range


Dim lastrow As Long
lastrow = Worksheets("Master Filtered").Cells(Rows.Count, 1).End(xlUp).Row

Worksheets("Master Filtered").Range("K3").Value = "MTL OR TOR"

Set myRange = Worksheets("Ndex Positions").Range("A2:G9000") 'Range in which the table MTL or TOR should be entered


For G = 4 To lastrow

AcctNb = Worksheets("Master Filtered").Cells(G, 3).Value
result = Application.WorksheetFunction.VLookup(AcctNb, myRange, 7, False)

Worksheets("Master Filtered").Range("K" & G).Value = result
Next

End Sub

Но, похоже, это не работает («Невозможно получить свойство Vlookup класса WorksheetFucntion»)

Я не знаю, в чем моя ошибка. Если это помогает, когда я заменяю число 7 числом 2 в следующей строке: «result = Application.WorksheetFunction.VLookup (AcctNb, myRange, 7, False)», все работает отлично. Но он принимает значения из столбца B, а не из столбца G. Поэтому я заменил 2 на 7 (индекс буквы G в алфавите). Тем не менее, это не похоже на работу.

Пожалуйста, дайте мне знать, если у вас есть идея, где может быть моя ошибка.

Спасибо :)

1 Ответ

0 голосов
/ 29 мая 2019

Попробуйте использовать Index/Match, чтобы сделать точные ссылки ...

Application.Index(OutputRange, Application.Match(LookupVal, LookupRange,0))

С вашими данными, предполагая, что я получаю правильный диапазон Match (при условии, что вы нашли свой AcctNb в столбце A):

AcctNb = Worksheets("Master Filtered").Cells(G, 3).Value
With Worksheets("Ndex Positions")
    Application.Index(.Range("G:G"), Application.Match(AcctNb, .Range("A:A"),0))
End With

Обратите внимание, что 0 в совпадении означает «точное совпадение»

...