編輯更多詳細信息:您可以使用R1C1
參考樣式,更重要的是,R[1]C[1]
表示法。不過,對於不同的語言有一個警告,請參閱帖子的最後部分。示例:
R2C4 'row 2, column 4 so it's the cell D2 in A1-notation
R[2]C[4] 'the cell 2 to the right and 4 down from the current cell (where this reference is located)
R[2]C4 'the cell 2 to the right from the current cell in column 4 (D)
R[-2]C[-4] 'you can also give negative arguments, this is the cell 2 to the left and 4 up
R[2]C 'the same as R[2]C[0]
RC[4] 'the same as R[0]C[4]
R2C 'the same as R2C[0]
RC4 'the same as R[0]C4
R2 'row 2
C4 'column 4 (the same as D:D)
從最後三個示例中可以看出,符號不能混合使用。
現在對於你的情況:
如果你想在細胞Bx
以下(任意數量的替換x)
"=IF($Ax>50000,""Ignore"",""Buy"")"
這將是R1C1公式
"=IF(RC1>50000,""Ignore"",""Buy"")"
,或者更重要的是它是左邊的列:
"=IF(RC[-1]>50000,""Ignore"",""Buy"")"
後者會像從原始公式中刪除$
一樣。
你的第二個公式是
"=IFERROR(VLOOKUP(RC3,Database!$A:$F,3,FALSE),""Missing"")"
和阿克塞爾的回答
"=IFERROR(VLOOKUP(RC3,Database!C1:C6,3,FALSE),""Missing"")"
現在應該清楚。
如果您不想或不能使用formulaR1C1
屬性,但仍然使用單個單元格的R1C1樣式引用,則可以使用INDIRECT
工作表函數。 INDIRECT("R1C1",FALSE)
是對R1C1
的參考。 FALSE
指示它使用R1C1而不是A1表示法。如果引用的單元格中除了數字以外的內容,它可能會與簡單的引用略有不同。
我個人更喜歡R1C1表示法比A1表示法更好,主要是因爲它相對於當前位置更容易引用單元格,但也因爲它更容易讀取高列數並且它更接近於Cells(rowIndex,columnIndex)
語法。
最後一件事:在其他語言版本的Excel中,R1C1的命名可能不同。這不會影響公式,當你通過VBA輸入時(我認爲),但如果你想從工作表中輸入它,你需要牢記這一點。例如在德語中是Z1S1。這在使用不同語言版本打開文件時也會導致問題。如果您在公式中使用INDIRECT("R1C1",FALSE)
的INDIRECT
和FALSE
將被翻譯,但該字符串不會這樣就不會工作:((最後一部分是從內存中)
從公式中刪除$。 –
@RyanWildry遺憾也沒有工作 – jay