具有已定义变量的 Vlookup 范围

Vlookup range with a defined variable

我正在整合来自几个 excel 文件的数据,我有 22 个文件要整合;但是,我需要专门查找单元格值。

在我的 VBA 代码中,我声明了一个名为 file=int(1) 的变量,我正在循环打开每个 excel 文件并将其合并到一个合并文件中。我所有的 excel 文件都从 1 到 22 编号。

我想要的是Vlookup,但是Vlookup的范围我希望它在循环时在文件中有存储的值。

例如

file = Int(1)
Do Until file = 22

 ActiveCell.Formula = "=IFERROR(VLOOKUP($I,'[file.xls]Sheet1'!$B:$V,MATCH($F,'[file.xls]Sheet1'!$B:$V,0),FALSE),0)"

ActiveCell.Select
                Selection.Copy
                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                ActiveCell.Select
                Selection.Offset(1, 0).Select

                file = file + 1

你能帮帮我吗?

谢谢!

漂亮整洁的小循环!好吧,我想我知道你想在这里做什么。您希望在循环的每次迭代中动态更新公式中的 [file.xls]。由于您使用的是 formula 属性,它接受一个字符串,因此您可以将存储的 file 值直接连接到其中。

这应该可以解决问题。

ActiveCell.Formula = "=IFERROR(VLOOKUP($I,'[" & file & ".xls]Sheet1'!$B:$V,MATCH($F,'[" & file & ".xls]Sheet1'!$B:$V,0),FALSE),0)"

希望我理解正确,如果没有理解,我们再来一轮!