通过 r1c1 公式引用预定义范围
Refering to a predefined range through r1c1 formulation
我必须在另一个工作表的另一个范围内查找一些值。我已将范围定义为 "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,因为范围应该是灵活的,具体取决于查找 table,例如:
Set x = extwbk.Worksheets("ark1").Range("A1:d" & rows)
关于如何在查找函数中引用范围 x 的任何建议?
谢谢!
您正在将 x
范围设置为 Set x = extwbk.Worksheets("ark1").Range("A1:d400")
,并且您想在 R1C1
类型的公式中使用它,您可以从 x
中获取地址范围 x.Address(False, False, xlR1C1)
。
尝试使用以下两行:
.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 之后,如果您指的是外部工作簿,那么您需要添加第 4 个参数,并且还要查找绝对范围:
.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)"
我必须在另一个工作表的另一个范围内查找一些值。我已将范围定义为 "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,因为范围应该是灵活的,具体取决于查找 table,例如:
Set x = extwbk.Worksheets("ark1").Range("A1:d" & rows)
关于如何在查找函数中引用范围 x 的任何建议? 谢谢!
您正在将 x
范围设置为 Set x = extwbk.Worksheets("ark1").Range("A1:d400")
,并且您想在 R1C1
类型的公式中使用它,您可以从 x
中获取地址范围 x.Address(False, False, xlR1C1)
。
尝试使用以下两行:
.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 之后,如果您指的是外部工作簿,那么您需要添加第 4 个参数,并且还要查找绝对范围:
.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)"