1

我需要对每个单元格使用 Vlookup 宏 =VLOOKUP(E2,[gpic.xlsx]Sheet1!$A:$D,4,FALSE) 直到它结束。我不确定如何使用长而不是范围。当我使用范围时,它有时会超出,因为我预测错误并且我希望一切都自动化,有人可以帮忙吗?而不是 E2 我需要它来遍历所有这些,但我想将它合并到我的宏中。

Sub Work()
Dim LR As Long
Dim row As String
row = "E2"
row = "E" & x
LR = Range("E" & Rows.Count).End(xlUp).row
Range(Columns(6), Columns(7)).Select
For x = 0 To 2
row = "E" & x
Range("F2:F" & LR).Formula = "=VLOOKUP(" & row & ",[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"
Next




End Sub
4

2 回答 2

2

为了扩展 JDuarteDJ 所说的内容,使用变量循环遍历行可能效果最好。但是,您提到有时您错误地预测了行数。你可以使用:

rowCount = ActiveSheet.Range("F" & Rows.Count).End(xlUp).Row

这将为您提供 F 列中包含某些内容的行数。然后您可以执行 JDuarteDJ 仅提到的相同循环,而不是

x = 2 到 20

你可以使用

For x = 2 to rowCount
 ' 做前面提到的所有事情以及你需要做的事情
Next

希望这可以帮助

-------------更新---------------
编辑的问题,我认为,是在你的 for 循环中,你正在使用:

Range("F2:F" & LR).FormulaR1C1 = "=VLOOKUP(&row&,[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"

这不是迭代正确的次数。在我看来,您想要做的是从 2 循环到行数,如下所示:

对于 x = 2 到 LR
范围("F2:F" & X).FormulaR1C1 = "=VLOOKUP(&row&,[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"

于 2013-07-26T14:39:29.457 回答
0

将 E2 替换为变量:

暗淡的行作为字符串
行=“E2”

然后使用循环遍历所有 E2、E3、E4 等。

对于 x=2 到 20,请执行
row = "E" & x
formula = "VLOOKUP("&row&",[gpic.xlsx]Sheet1!$A:$D,4,FALSE)"
... 在此处使用您的代码.. .

我的 VB 可能有点生疏了:/
希望这会有所帮助

于 2013-07-26T14:20:08.017 回答