在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
方法创建了一个数据透视表,并设置了数据透视表的行、列和值。最后,我们对数据透视表进行了一些格式化,并自动调整列宽。
请确保在运行此代码之前,将数据源工作表的名称和数据范围替换为实际的名称和范围。