带Excel的VLookup()VBA – 要查找的值的数量是可变的

我需要在文件A中使用vlookup引用文件B中包含两列(用户和国家)的数据集。

文件A的列A中的用户数量每次执行查找时都会有所不同,所以我需要一些VBA代码来考虑这一点。 到目前为止,我所使用的是macroslogging器,只要每次macros运行时都存在相同数量的用户就可以正常工作,而事实并非如此。

以下是我目前使用的代码,然后将其自动填充到第113行。就像我说的那样,直到有114个用户结束,那个时候,vlookups就停止了。

ActiveCell.FormulaR1C1 = _ "=VLOOKUP(RC[-1],'[AD Data 9-8-15.xls]showAllUsersReport'!C1:C2,2,FALSE)" Selection.AutoFill Destination:=Range("B2:B113"), Type:=xlFillDefault 

我是否需要修改此代码或插入完全不同的内容?

您可以跳过Range.AutoFill方法 ,只需一次写入公式。

 dim lr as long with activesheet lr = .cells(rows.count, 1).end(xlup).row .range(.cells(2, 2), .cells(lr, 2)).FormulaR1C1 = _ "=VLOOKUP(RC[-1],'[AD Data 9-8-15.xls]showAllUsersReport'!C1:C2,2,FALSE)" .range("C2:C" & lr).formula = "=TODAY()-1" 'for a static date (one that will not change tomorrow) use the following instead '.range("C2:C" & lr) = Date - 1 end with 

我不知道你的公式从你的样本实际开始 。 这 B2 开始 ,填充列B到列A中的最后一个单元格。它看起来像您的示例实际上可能在B1开始,但我不能确定。