第一个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)))"
第一个VBA输出:从上面的代码我得到excel中的以下公式是正确的:
=IF($C17 ="","",IF(LEFT(LOWER($C17),4)="none","",VLOOKUP(LEFT($C17,(FIND(" ",$C17,1)-1)),BaseRule!B:G,2,0)))
第二个VBA代码:但是我想让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)))"
第二个VBA输出:然后我从上面的代码中得到以下公式,该公式无效。我没有得到第一个VBA输出公式,我在第二个代码上遗漏了什么?
=IF(RC7 ="","",IF(LEFT(LOWER(RC7),4)="none","",VLOOKUP(LEFT(RC7,(FIND(" ",RC7,1)-1)),BaseRule!$B:$G,2,0)))
答案 0 :(得分: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中,表示法[]
括号用于表示 relative 引用。
要指示绝对引用,您只需指示实际的列或行编号。
因此对于 B列,C2
是第2列。
对于列G ,即第7列将是{ {1}}。
另请注意,我使用了上面的C7
属性
当您在公式中使用R1C1表示法时,这是正确的属性。