替换应用程序.vlookup与vlookup(R1C1.)



我正在使用应用程序。工作表函数执行如下vlookup:

For i = 4 to LastRow
    Cells(i, 35) = Application.WorksheetFunction.IfError(Application.VLookup(Cells(i, 12), Sheets("Risk Explorer greeks").Range("A1:C50000"), 3, 0), Cells(i, 15))
Next i

由于这需要很长时间,我尝试使用以下代码来替换它:

Range("AI:AI" & LastRow).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-21],'Risk Explorer greeks'!R2C1:R50000C3, 3, False),"Range("O4:O" & LastRow)"

然而,它给了我一个错误,我相信因为最后一段代码,在错误发生时发挥作用。在我的第一段代码中,如果vlookup在单元格50中失败,则iferror将查找第15行第50列中的值并返回该值。这就是我试图通过我使用的第二段代码来实现的,但它似乎不起作用。有人能帮我一下吗?

我一直在玩这个一段时间,但似乎无法解决!

您缺少Range对象的开始行,并且您希望公式中当前行的第15列中的值:

Range("AI4:AI" & LastRow).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-21],'Risk Explorer greeks'!R2C1:R50000C3, 3, False),RC15)"

最新更新