请教excel中透视表+vba的使用

发布网友 发布时间: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),而并未激活,所以活动工作表默认还是第一个表,死循环,肯定要出错

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com