通过r1c1公式参考预定义的范围

我必须从另一个工作表中的另一个范围查找一些值。 我已经将范围定义为“x”,我想在r1c1公式中使用它,参见示例:

Set x = extwbk.Worksheets("ark1").Range("A1:d400") With twb.Sheets(filename) .Range("k2:k" & n).FormulaR1C1 = "=VLOOKUP(RC[-10],x,4,False)" .Range("l2:l" & n).FormulaR1C1 = "=VLOOKUP(RC[-11],x,4,False)" 

我试图做的application.vlookup,它的工作原理,但太慢了,因为我必须循环4000+行两次我将需要使用范围x,作为范围应灵活取决于查找表,例如:

 Set x = extwbk.Worksheets("ark1").Range("A1:d" & rows) 

任何build议如何我可以参考我的查找function的范围x? 谢谢!

您将x范围Set x = extwbk.Worksheets("ark1").Range("A1:d400")Set x = extwbk.Worksheets("ark1").Range("A1:d400") ,并且想要在R1C1types的公式中使用它,可以通过x范围获取地址x.Address(False, False, xlR1C1)

尝试使用下面的2行:

 .Range("K2:K" & n).FormulaR1C1 = "=VLOOKUP(RC[-10]," & x.Address(False, False, xlR1C1) & ",4,False)" .Range("L2:L" & n).FormulaR1C1 = "=VLOOKUP(RC[-11]," & x.Address(False, False, xlR1C1) & ",4,False)" 

在@Rory注释和PO之后,如果您指的是外部工作簿,则需要添加第四个参数,并查找绝对范围:

 .Range("K2:K" & n).FormulaR1C1 = "=VLOOKUP(RC[-10]," & x.Address(True, True, xlR1C1, True) & ",4,False)" .Range("L2:L" & n).FormulaR1C1 = "=VLOOKUP(RC[-11]," & x.Address(True, True, xlR1C1, True) & ",4,False)"