使用VBA Vlookup在两个工作表之间工作并填充整个列

我需要编写这个VLOOKUPmacros来读取:

“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这也会导致一个问题。 我也删除了它。