在Excel中按组以表格形式进行总计,可以使用Excel的数据透视表功能。下面是一个示例代码,可以通过VBA在Excel中创建数据透视表并进行总计:
Sub CreatePivotTable()
    Dim wsData As Worksheet
    Dim wsPivot As Worksheet
    Dim rngData As Range
    Dim rngPivot As Range
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    ' 设置数据源工作表和数据范围
    Set wsData = ThisWorkbook.Worksheets("Sheet1")
    Set rngData = wsData.Range("A1:C10")
    
    ' 创建新的数据透视表工作表
    Set wsPivot = ThisWorkbook.Worksheets.Add
    wsPivot.Name = "Pivot"
    
    ' 设置数据透视表的位置
    Set rngPivot = wsPivot.Range("A1")
    
    ' 创建数据透视表
    Set pt = ThisWorkbook.PivotTableWizard(SourceType:=xlDatabase, SourceData:=rngData, _
        TableDestination:=rngPivot, TableName:="PivotTable1")
    
    ' 设置数据透视表的行、列和值
    pt.PivotFields("Group").Orientation = xlRowField
    pt.PivotFields("Group").Position = 1
    pt.PivotFields("Item").Orientation = xlRowField
    pt.PivotFields("Item").Position = 2
    pt.AddDataField pt.PivotFields("Value"), "Total", xlSum
    
    ' 格式化数据透视表
    With pt
        .RowGrand = True
        .ColumnGrand = True
        .HasAutoFormat = True
        .DisplayErrorString = False
        .DisplayNullString = False
    End With
    
    ' 格式化数据透视表的值列
    With pt.PivotFields("Total")
        .NumberFormat = "#,##0.00"
    End With
    
    ' 自动调整列宽
    wsPivot.Columns.AutoFit
    
    ' 显示数据透视表
    wsPivot.Activate
    
End Sub
这段代码首先设置了数据源工作表和数据范围,然后创建了一个新的数据透视表工作表。接下来,代码使用PivotTableWizard方法创建了一个数据透视表,并设置了数据透视表的行、列和值。最后,我们对数据透视表进行了一些格式化,并自动调整列宽。
请确保在运行此代码之前,将数据源工作表的名称和数据范围替换为实际的名称和范围。