Vlookup范围带有已定义的变量

时间:2015-04-08 21:29:49

标签: excel vba excel-vba match vlookup

我整合了几个excel文件中的数据,我有22个文件要合并;但是,我需要专门查找一个单元格值。

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

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

例如

file = Int(1)
Do Until file = 22

 ActiveCell.Formula = "=IFERROR(VLOOKUP($I$6,'[file.xls]Sheet1'!$B$4:$V$27,MATCH($F$26,'[file.xls]Sheet1'!$B$3:$V$27,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

你能帮帮我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

这应该可以解决问题。

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

希望我理解得当,如果没有,我们会再去一轮!