如何用vba在excel单元格区域中输入函数公式?

在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属性的好处就是它使用的是相对引用的形式输入函数公式,不用去关注具体的单元格区域的位置。

 

       

发表评论