今日給大家推出VBA代碼方案的第十八講:如何利用VBA代碼在單元格中錄入公式.我們知道,在EXCEL中,錄入公式是很平常的事,但在VBA中錄入公式要麻煩些,要借助於Range對象的Formula屬性才可以。下面用分幾種途徑來解決:
一:使用Range對象的Formula屬性可以在單元格區域中寫入公式,應用於Range對象的Formula屬性返回或設置某單元格樣式表示的Range對象。
其語法如下:
expression.Formula
參數expression是必需的,返回一個Range對象。
實例:如下面的代碼所示。
Sub MyrngFormula()
Sheet1.Range("C2:C10").Formula = "=SUM(A2+B2)"
End Sub
代碼解析:
上述代碼中利用了.Formula = "=SUM(A2+B2)",我們把句話轉換為EXCEL中的操作就是相當於在C2中錄入公式= SUM(A2+B2),然后在C3,C4,C5,C6,C7,C8,C9,C10中復制上面的公式也就是說C3:= SUM(A3+B3); C4:= SUM(A4+B4); C5:= SUM(A5+B5); C6:= SUM(A6+B6); C7:= SUM(A7+B7); C8:= SUM(A8+B8); C9:= SUM(A9+B9); C10:= SUM(A10+B10);也就是說相當於,選中單元格,下拉的操作。
我們看下面的代碼截圖:

代碼運行前:

運行后:

二:還可以使用FormulaR1C1屬性返回或設置以R1C1-樣式符號表示的公式,如下面的代碼所示。
Sub MyrngFormulaRC()
Sheet2.Range("C1:C10").FormulaR1C1 = "=SUM(RC[-2]+RC[-1])"
End Sub
三:如果需要在單元格中寫入數組公式則使用Range對象的FormulaArray屬性。如下面的代碼所示。
Sub MyRngFormulaArray()
Sheet3.Range("C1").FormulaArray = "=A1:A2*B1:B2"
End Sub
Range對象的FormulaArray屬性返回或設置單元格區域的數組公式。
好了,今日的代碼方案就講到這里。
今日內容回向:
1 expression.Formula expression.FormulaR1C1 expression.FormulaArray 意義是什么
2 上述的三個屬性的返回值是什么?