在macros函数中使用Vlookup

我需要为每个单元格使用Vlookupmacros= VLOOKUP(E2,[gpic.xlsx] Sheet1!$ A:$ D,4,FALSE),直到它结束。 我不知道如何使用长而不是范围。 当我使用范围它有时会超过,因为我预测错了,我希望一切都自动化,任何人都可以帮忙吗? 而不是E2我需要它通过所有这些,但我想把它纳入我的macros。

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 

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

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

这会给你F列中的行的数量。然后,你可以做同样的循环,JDuarteDJ只提到,而不是

x = 2至20

你可以使用

对于x = 2到rowCount
'做前面提到的所有事情,以及你需要做的事情
下一个

希望这可以帮助

————- UPDATE —————————
编辑的问题,我想,是在你的for循环,你使用:

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

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

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

将E2replace为一个variables:

昏暗的行作为string
row =“E2”

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

对于x = 2到20做
行=“E”&x
公式=“VLOOKUP(”&row&“,[gpic.xlsx] Sheet1!$ A:$ D,4,FALSE)”
…在这里使用你的代码…

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