如何使用vlookup在另一张纸的G列中找到值?

时间:2019-05-29 19:45:35

标签: excel vba vlookup

我正在处理一个名为“主过滤器”的工作表,该表中的列K的值应填充为工作表“ Ndex位置”列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

但这似乎不起作用(“无法获取WorksheetFucntion类的Vlookup属性”)

我不知道我的错误是什么。如果有帮助,当我在下面的行中用数字2替换数字7时:“结果= Application.WorksheetFunction.VLookup(AcctNb,myRange,7,False)”,一切正常。但这是从B列而不是G列获取值的。这就是为什么我将2替换为7(字母表中字母G的索引)的原因。但是,这似乎不起作用。

请让我知道您是否知道我的错误可能在哪里。

谢谢:)

1 个答案:

答案 0 :(得分:0)

尝试使用Index/Match作为确切参考...

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

使用您的数据,假设我得到正确的Match范围(假设您在A列中找到了AcctNb):

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表示“完全匹配”