Excel 使用 VBA 添加时出现 vlookup 范围问题

Excel vlookup range issue while adding using VBA

1st VBA代码:我在VBA中使用vlookup公式,下面是我放在VBA中的公式:

Rng.Formula = "=IF(RC" & SeseCol & " ="""","""",IF(LEFT(LOWER(RC" & SeseCol & "),4)=""none"","""",VLOOKUP(LEFT(RC" & SeseCol & ",(FIND("" "",RC" & SeseCol & ",1)-1)),'[HMO Base Rule Picker - Formula.xlsm]BaseRule'!C[-10]:C[-5],2,0)))"

1st VBA output:从上面的代码我得到下面的公式 excel 这是正确的:

=IF($C17 ="","",IF(LEFT(LOWER($C17),4)="none","",VLOOKUP(LEFT($C17,(FIND(" ",$C17,1)-1)),BaseRule!B:G,2,0)))

2nd VBA code: 但是我想让 C[-10]:C[-5] 到一个恒定范围并尝试更改为 $B:$ G如下VBA代码:

Rng.Formula = "=IF(RC" & SeseCol & " ="""","""",IF(LEFT(LOWER(RC" & SeseCol & "),4)=""none"","""",VLOOKUP(LEFT(RC" & SeseCol & ",(FIND("" "",RC" & SeseCol & ",1)-1)),'[HMO Base Rule Picker - Formula.xlsm]BaseRule'!$B:$G,2,0)))"

2nd VBA output: 然后我从上面的代码中得到下面的公式,但它不起作用。我得到的结果与第一个 VBA 输出公式不一样,我在第二个代码中遗漏了什么吗?

=IF(RC7 ="","",IF(LEFT(LOWER(RC7),4)="none","",VLOOKUP(LEFT(RC7,(FIND(" ",RC7,1)-1)),BaseRule!$B:$G,2,0)))

使用 C2:C7 代替 C[-10]:C[-5]
最终公式为:

Rng.FormulaR1C1 = "=IF(RC" & SeseCol & " ="""","""",IF(LEFT(LOWER(RC" & SeseCol & _
    "),4)=""none"","""",VLOOKUP(LEFT(RC" & SeseCol & ",(FIND("" "",RC" & SeseCol & _
    ",1)-1)),'[HMO Base Rule Picker - Formula.xlsm]BaseRule'!C2:C7,2,0)))"

在 R1C1 表示法中 [] 括号用于表示 相对 引用。
要表示绝对引用,您只需指出实际的 columnrow 编号。
因此对于 B 列C2 第二列。
对于 G 列第 7 列是 C7

另请注意,我在上面使用了 FormulaR1C1 属性。
当您在公式中使用 R1C1 表示法时,这是正确的 属性。