2

我的 VBA 中的 VLOOKUP 遇到了一些问题。这是我正在使用的代码示例:

Sub Macro15()
'
' Macro15 Macro
Dim LR As Long
LR = Cells(Rows.Count, "A").End(xlUp).Row
Range("B1:B" & LR).FormulaR1C1 = _
"=VLOOKUP(RC[-1],'https://internal_sharepoint_address
    /[Vendor_Information.xlsx]Sheet1'!R3C3:R150C18,4,FALSE)"
Range("C1:C" & LR).FormulaR1C1 = _
    "=VLOOKUP(RC[-2],'https://internal_sharepoint_address
/[Vendor_Information.xlsx]Sheet1'!R3C3:R150C18,5,FALSE)"
With Range("B1:C" & LR)
.Value = .Value
End With
End Sub

问题是 B 列和 C 列(VLOOKUP 公式)中的值返回 #N/A 值。

但是,如果我在将公式转换为值之前停止代码(“With Range("B1:C" & LR)" 行),VLOOKUP 公式将返回正确的值。

也很奇怪 - 如果我清除 B 列和 C 列的内容并重新运行上面的代码,值返回正常。但是,如果我尝试向 VBA 添加第二个循环,它就不起作用。

任何人能提供的任何智慧都会有很大的帮助。我已经被困在这个问题上很长时间了,我只是无计可施。

谢谢大家,大卫

4

1 回答 1

1

在尝试替换为值之前,您可能需要添加一个运行计算周期的步骤:

Application.Calculate

从评论编辑:我想从 Sharepoint 网站上的链接工作簿中检索查找数据需要一段时间。也许添加一些延迟循环?您可以制作两个单独的宏(一个以公式结尾,第二个以粘贴值开头),并在其间暂停运行它们吗?

于 2010-11-15T18:55:33.400 回答