【发布时间】:2017-06-22 06:26:03
【问题描述】:
我正在尝试使用 Visual Basic 中的 Application.VLookup 函数在不同的工作簿中查找值。但是,每当我使用它时,它总是返回#N/A。
这是我的函数的布局。 LastRow() 只返回最后一行的行号。 SHORTAGE_SBT 是一个包含源工作簿名称的变量。 SBT_Last 是 SHORTAGE_SBT 的最后一行。我在 B 列中搜索的 ID,因此我使用 "B" & ind 来引用它。
For ind = 4 To LastRow()
Range("H" & ind).Select
ActiveCell.Value = Application.VLookup("B" & ind, Workbooks(SHORTAGE_SBT).Sheets(1).Range("A14:DZ" & SBT_Last), Range("DZ1").Column, False)
Next
我尝试为 VLookup 录制一个宏,看看它是否能帮助我理解问题。宏给了我这个函数,它工作但不能使用,因为它包含硬编码的文件名而不是使用变量。
Range("H" & ind).FormulaR1C1 = "=VLOOKUP(RC[-6],'[filename.xls]Sheet1'!R14C1:R2382C130, COLUMN(R[-3]C[122]), FALSE)"
除了使用更直接的引用之外,我看不出宏布局函数参数的方式与我的方式有任何显着差异。我曾尝试在我的代码中使用直号,但这样做也无济于事。
【问题讨论】: