簡體   English   中英

使用VBA添加時出現Excel vlookup范圍問題

[英]Excel vlookup range issue while adding using VBA

第一個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輸出 :從上面的代碼中,我在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)))

使用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表示法[]括號用於指示相對參考。
要指示絕對引用,您只需要指示實際的列號號。
因此,對於列B來說C2是第二列。
對於G列 ,即第七列將為C7

還要注意,我在上面使用了FormulaR1C1屬性。
在公式中使用R1C1表示法時,這是正確的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM