VBA VLOOKUP从不同的excel文件名称不同

您好,我在其他excel电子表格在不同的excel文件中做一个vlookup。 现在我的问题是名称一直在变化。

Range("B2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[TEST2.xlsx]Sheet1!C1:C8,8,FALSE)" Range("B2").Select Selection.AutoFill Destination:=Range("B2:B" & Range("A" & rows.Count).End(xlUp).Row) Range("B2:B" & Range("A" & rows.Count).End(xlUp).Row).Select 

所以基本上它在TEST2.xlsx中查找它所需要的数据,而不是放在我原来的excel文件中的列表中。 但TEST2会一直改变,每当我要使用这个macros

我怎样才能做到这一点?

不完全确定你需要什么,但如果我是对的,你可以做这样的事情。
值得注意的是,没有必要先select单元格,而是可以直接引用它们。

 Sub lookupSub(dataFile) Range("B2").FormulaR1C1 = "=VLOOKUP(RC[-1],[" & dataFile & "]Sheet1!C1:C8,8,FALSE)" Range("B2").AutoFill Destination:=Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row) Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row).Select End Sub 

然后你可以这样调用它:

 Call lookupSub("TEST2.xlsx") 

或者如果它在循环内工作,你可以做这样的事情:

 For i = 1 To 10 Call lookupSub("TEST" & i & ".xlsx") Next i