VLookup() with Excel VBA - 要查找的值的数量是可变的

VLookup() with Excel VBA - Number of values to look up is variable

我需要在文件 A 中使用 vlookup,它引用文件 B 中具有两列(用户和国家/地区)的数据集。

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

这是我到目前为止的代码,它执行 vlookup,然后将其自动填充到第 113 行。就像我说的那样,这一直有效,直到我最终拥有 114 个以上的用户,此时 vlookup 才停止。

ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-1],'[AD Data 9-8-15.xls]showAllUsersReport'!C1:C2,2,FALSE)"

Selection.AutoFill Destination:=Range("B2:B113"), Type:=xlFillDefault

我需要mod此代码还是插入完全不同的内容?

您可以跳过Range.AutoFill method,一次性写出所有公式。

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 开始的,但我可以不确定。