在excel中,我们可以在单元格中输入各种函数公式。
比如,我们可以在A4单元格中输入公式
=SUM(A1:A3)
计算A1:A3单元格区域的和。
如果要在vba中实现输入上述的函数公式,可以直接将上述公式作为字符串赋值给Range对象的Formula属性,代码如下:
Sub QQ1722187970() Dim oWK As Worksheet Dim oRng As Range Set oWK = Excel.ActiveSheet With oWK Set oRng = .Range("a4") With oRng .Formula = "=SUM(A1:A3)" End With End With End Sub
上述函数公式属于最简单的函数公式,对于复杂的函数公式,往往带有多个函数的嵌套,以及用双引号括起来的字符串。
比如要在A4单元格中输入如下的函数公式:
=COUNTIF(A1:A3,"a")
对于函数公式内部带有双引号的,在用vba将公式填入单元格内时,需要将双引号再对应的加上双引号,如下所示:
Sub QQ1722187970() Dim oWK As Worksheet Dim oRng As Range Set oWK = Excel.ActiveSheet Dim sFormula As String '双引号外再套双引号 sFormula = "=COUNTIF(A1:A3,""a"")" With oWK Set oRng = .Range("a4") With oRng .Formula = sFormula End With End With End Sub
除了使用Range对象的Formula属性,在用录制宏录制VBA代码时,可以看到录制宏使用的Range对象的FormulaR1C1属性输入函数公式。FormulaR1C1属性的好处就是它使用的是相对引用的形式输入函数公式,不用去关注具体的单元格区域的位置。
发表评论