我正在爲使用VBA(r1c1格式)的Excel編寫一個宏,並且我想引用始終位於E3位置的單元格。有沒有我可以使用的語法,它會在r1c1格式中進行絕對引用?或者有沒有辦法切換到A1並返回到r1c1?如何在VBA for Excel中使用r1c1格式進行絕對引用?
我四處張望,無法找到答案......提前致謝。
我正在爲使用VBA(r1c1格式)的Excel編寫一個宏,並且我想引用始終位於E3位置的單元格。有沒有我可以使用的語法,它會在r1c1格式中進行絕對引用?或者有沒有辦法切換到A1並返回到r1c1?如何在VBA for Excel中使用r1c1格式進行絕對引用?
我四處張望,無法找到答案......提前致謝。
如果我堅持=E3
爲G5
和=$E$3
爲G6
,然後啓動一個VB窗口和即時窗口中做到這一點:
? ActiveSheet.Range("G5").Formula
=E3
? ActiveSheet.Range("G5").FormulaR1C1
=R[-2]C[-2]
? ActiveSheet.Range("G6").Formula
=$E$3
? ActiveSheet.Range("G6").FormulaR1C1
=R3C5
因此,R和C,使其相對於當前單元格。當數字爲負時,您需要使用方括號,否則Excel會認爲您正在從無效單元格引用中減去一個數字。
編輯:值得一提的是,絕對值與相對值之間的引用處理方式不同。
對於相對引用您從細胞公式是在計數。E3
是R[-2]C[-2]
遠離G5
。即向上2行,向左2列。
對於從左上角開始計算的絕對值。所以E3
是R3C5
。即3行向下,5列以上。 (感謝@GeorgeDooling用於澄清)
小澄清。你不是從A1算起,你正在計數表,有點像0,0。因此,R1C1將從該0,0點下降一個,並在第1行第1列(A)處結束。括號中的數字表示「從我的當前位置移動此數量的位置」。沒有括號的數字表示「使用此確切位置」。這就是爲什麼你不能有R0C0或R-1C-1等。在Excel中沒有位置是行/列零或負位置。 –
@GeorgeDooling非常感謝 - 我明確沒有正確解釋。 –
R3C5
沒有括號=相對
擊中F4在Cell窗口時編輯公式將切換相對或絕對
R3C5是絕對的參考!相對一個是r [-2] c [6] –
有時'Application.ConvertFormula'函數在參考樣式之間切換很有用。例如,添加到這個即時窗口:
debug.print application.ConvertFormula( 「= PRODUCT(O7,P $ 7)」,xla1,xlr1c1)
返回此:
= PRODUCT(RC [-5],R 7 C [-4])
這是一個簡單的例子,但是當你有你的手怪獸公式...
此外,參考,之間切換在VBA NCE樣式是通過完成:
application.ReferenceStyle = xlA1
或
application.ReferenceStyle = xlR1C1
的R1C1格式可以爲絕對的和相對的引用可使用兩者。 沒有括號的R1C1是絕對的,當你使用括號時它是相對的。
R3C5
總是指向E3
無論你在哪裏使用它。 正如您所知道的,R[3]C[5]
始終指向您當前位置的右下方3和5。
正如George Dooling在其中一條評論中所說的那樣,原因R-3C-5
是無意義的,因爲你已經離開了工作表。工作表從R1C1
開始,數字只有上升。
至於你的第二個問題,你可以用引號括起來使用A1格式。 R3C5
可以寫作"E3"
內FormulaR1C1
沒有問題。
如果我沒有記錯的話,可以在括號內加上數字。例如,R [1] C [2]等於B2,即第1行第2列。 –