错误:未定义子功能或子功能-简单的小计宏

时间:2018-07-02 15:16:46

标签: vba subtotal

我有这个简单的代码:

Range("A1:C201").Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _
    Replace:=True, PageBreaks:=False, SummaryBelowData:=True

当我尝试运行宏时,它显示错误“未定义Sub或功能”。我没有看到任何sintax错误,所以不确定我的VB设置是否有问题?

你能帮我吗?

1 个答案:

答案 0 :(得分:1)

所有代码必须存在于一个子函数中。您不能在这些构造之外编写代码。

尝试一下:

Option Explicit

Public Sub runSubTotal()
    Range("A1:C201").Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=xlSummaryBelow
End Sub

注意:您可以使它与任何选定的范围一起使用,而不是使此子例程的范围成为静态。使用以下代码,您可以在工作表中选择数据,然后运行宏。它将接受用户选择的任何内容:

Option Explicit

Public Sub runSubTotal()
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(2), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub