最近在做項目的時候遇到了在 Excel VBA 代碼中給 Sheet 中的單元格內(nèi)輸入公式的問題,自己 Google 了一下,發(fā)現(xiàn) FormulaR1C1 這個函數(shù),這個函數(shù)還是很強大的,自己簡單了研究一下,為什么 Excel 能實現(xiàn)拖拽單元格時單元格中的公式能智能的根據(jù)位置而變換?答案就是這個函數(shù)。 FormulaR1C1 是公式輸入方法 中括號表示的是相對于選定單元格的相對偏移量,”-”為向左或向上偏移,正數(shù)為右或下偏移。 無中括號表示的是相對于選定單元格的絕對偏移量,沒有負(fù)數(shù)。 “R”和”C”表示的是待變“行”和“列”。 如:選定單元格為C8 R[-1]C[-1]為B7單元格,行列都-1,R[1]C[2]為E9單元格,行+1,列+2 R1C1代表A1單元格,R5C6代表F5單元格 例:C1單元格為"=A1+B1" Range("C1").FormulaR1C1 = "=RC[-2]+RC[-1]" 例:C1單元格為"=A2+E3" Range("C1").FormulaR1C1 = "=R[1]C[-2]+R[2]C[2]" 關(guān)于絕對引用的補充: 例:C1單元格為"=$A$2+$E$3" Range("C1").FormulaR1C1 = "=R2C1+R3C5" 說明: 如果指定單元格包含常量,本屬性返回的就是該常量。如果該單元格為空,本屬性將返回一個空字符串。如果該單元格包含公式,本屬性將把該公式作為字符串返回,格式與該公式在編輯欄中的顯示格式相同(包括等號)。 如果將單元格的格式的值或公式設(shè)為日期類型,Microsoft Excel 將檢查該單元格的格式是否符合某個日期或時間數(shù)組格式,如果不符合,將采用默認(rèn)的短日期數(shù)字格式。 如果指定區(qū)域是一維或二維區(qū)域,則可將公式指定為 Visual Basic 中相同維數(shù)的數(shù)組。同樣,也可在 Visual Basic 數(shù)組中使用公式。 對多重單元格區(qū)域設(shè)置公式,則該區(qū)域中所有單元格都用此公式填充。 Via MSDN |
|