在一个子系统中使用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