在一个子系统中使用VBA的多个Vlookups

我正在尝试在同一工作簿中使用另一个名为“Go Live Data”的工作表中的vlookups填充工作表中的多个列到范围的末尾。

所以,根据我的工作表中A6开始的值,我想查找范围A:K在表单“开始实时数据”单元格从U6开始到数据结束填充在选项卡(这将dynamic更改)。 我想重复这个从V6和W6开始的单元格。

这是我现在的代码,但它不填充。

Sub VlookupGoLiveandBOP() Dim Rng As Range, Dn As Range Set Rng = Range(Range("A6"), Range("A" & Rows.Count).End(xlUp)) With Range("U6") .Formula = "=IF(ISNA(VLOOKUP(A6,Go Live Data!$A:$K,2,FALSE)),"""",VLOOKUP(A6,Go Live Data!$A:$K,2,FALSE))" .AutoFill Destination:=Rng.Offset(, 66) With Range("v6") .Formula = "=IF(ISNA(VLOOKUP(A6,Go Live Data!$A:$K,3,FALSE)),"""",VLOOKUP(A6,Go Live Data!$A:$K,3,FALSE))" .AutoFill Destination:=Rng.Offset(, 66) With Range("w6") .Formula = "=IF(ISNA(VLOOKUP(A6,Go Live Data!$A:$K,4,FALSE)),"""",VLOOKUP(A6,Go Live Data!$A:$K,4,FALSE))" .AutoFill Destination:=Rng.Offset(, 66) End With Rng.Offset(, 66).Value = Rng.Offset(, 66).Value End Sub 

我在错误的轨道上? 感谢您的帮助。

尝试下面的代码,它会帮助你正确地分配VLookup范围。

当使用LKUpRng.Address(True, True, xlA1, xlExternal) ,第四个参数xlExternal也将所有的'! 需要。

 Option Explicit Sub VlookupGoLiveandBOP() Dim Rng As Range, Dn As Range Dim LKUpRng As Range Dim LkUpStr As String Set LKUpRng = Sheets("Go Live Data").Range("A:K") LkUpStr = LKUpRng.Address(True, True, xlA1, xlExternal) '<-- get the Range as a String, including the sheet's name Set Rng = Range(Range("A6"), Range("A" & Rows.Count).End(xlUp)) Range("U6").Formula = "=IF(ISNA(VLOOKUP(A6," & LkUpStr & ",2,FALSE)),"""",VLOOKUP(A6," & LkUpStr & ",2,FALSE))" End Sub