发布网友 发布时间:2022-04-21 17:36
共1个回答
热心网友 时间:2022-06-02 08:58
展开3全部Sub text()
''不用管工作表名称是数字还是数值,用工作表索引号循环即可,我的例子中注释的行可以删掉
Dim irow, i As Integer
For i = 1 To Worksheets.Count
irow = Sheets(i).Range("A1").End(xlDown).Row
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
Sheets(i).Range("a1:m" & irow), Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:= _
Sheets(i).Cells(1, 15), TableName:="PivotTable" & i, DefaultVersion:=xlPivotTableVersion15
''With Sheets(i).PivotTables("PivotTable" & i).PivotFields("姓名") ''行字段
'' .Orientation = xlRowField
'' .Position = 1
'' End With
''Sheets(i).PivotTables("PivotTable" & i).AddDataField Sheets(i).PivotTables("PivotTable" & i _
).PivotFields("收入"), "求和项:收入", xlSum ''数据区域
''With Sheets(i).PivotTables("PivotTable" & i).PivotFields("月份") ''列字段
'' .Orientation = xlColumnField
'' .Position = 1
''End With
Next
End Sub
''你的代码中ActiveSheet要改成具体的表名,也就是sheets(i),因为你在循环中,只是选择‘’了sheets(i),而并未激活,所以活动工作表默认还是第一个表,死循环,肯定要出错