我正在尝试使用同一工作簿中名为“Go Live Data”的另一个工作表中的vlookup来填充工作表中的多个列,直到范围的末尾。
因此,基于我在工作表中从A6开始的值,我想在工作表“Go Live Data”中查找范围A:K,用于从U6开始的单元格到填充在选项卡中的数据的末尾(这会动态变化)。我想对从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
我走错了路吗?谢谢你的帮助。
答案 0 :(得分:1)
尝试以下代码,它将帮助您正确分配VLookup
范围。
使用LKUpRng.Address(True, True, xlA1, xlExternal)
时,第4个参数xlExternal
还会添加工作表的名称(如果需要,还会添加工作簿)以及所需的所有'
和!
。< / p>
<强>代码强>
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