VBA VLOOKUP转换为值给#N / A

我在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 

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

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

也奇怪 – 如果我清除列B&C的内容并重新运行上述代码,值返回罚款。 如果我尝试向VBA添加第二个周期,则不起作用。

任何人都可以提供的任何智慧将是一个巨大的帮助。 我一直坚持这个很长一段时间,我只是在智慧的结束。

谢谢大家,大卫

您可能需要添加一个运行计算周期的步骤,然后尝试使用该值进行replace:

 Application.Calculate 

从评论编辑:我会想象从Sharepoint网站上链接的工作簿检索查找数据将需要一段时间。 也许增加一些延迟循环? 你可以制作两个独立的macros(一个以公式结尾,另一个以粘贴值开始),并分别运行它们,间隔一段时间?