使用VBA Vlookup在两个工作表之间工作并填充整个列
我需要编写这个VLOOKUP
macros来读取:
“Reach”表的列(A:B)
,然后将这些值应用于
使用列"A"
作为唯一标识符的"TV"
表格的列"L"
。
=VLOOKUP(A2,Reach!A:B,2,FALSE)
将是我将进入"TV"
表的列"L"
的代码Excel代码。
With ThisWorkbook.Sheets("TV") .Range("L2").Formula = "=VLOOKUP(A2,Reach!A:B,2,FALSE)" End With
这是我尝试过的代码,但它只填充在L2单元格中。
我如何得到这个适用于整个列?
你很近
这将填充L到A中的最后一行数据,我selectA因为这是你正在查找:
.Range("L2:L" & .Range("A" & .Rows.count).end(xlup).row).Formula = "=VLOOKUP(A2,Reach!A:B,2,FALSE)"
在这个问题的原始版本中,您显示了以下代码:
Dim lr As Long With ThisWorkbook.Worksheets("TV") lr = .Cells(.Rows.Count, "M").End(xlUp).Row Range("L2:L") = "=VLOOKUP(A2,Reach!A:B,2,FALSE),0" End With
如果通过将其更改为"L2:L" & lr
(并将Range
更改为.Range
,使其等同于ThisWorkbook.Worksheets("TV").Range
)来修复无效范围"L2:L"
:
Dim lr As Long With ThisWorkbook.Worksheets("TV") lr = .Cells(.Rows.Count, "M").End(xlUp).Row .Range("L2:L" & lr) = "=VLOOKUP(A2,Reach!A:B,2,FALSE)" End With
(只要列M是检查最后一行时使用的正确列,那么它应该工作。就个人而言,我会检查使用列A,因为你使用的公式似乎意味着将有一个值列A为你想包括这个公式在列L中的每一行。
注意:我刚刚注意到,你原来的配方结束时有一个stream浪,0
这也会导致一个问题。 我也删除了它。