
新字段自动进入数据透视表布局.pdf
4页1 新字段自动进入数据透视表布局新字段自动进入数据透视表布局 使用定义名称法或表方法创建的动态数据透视表,对于数据源中新增的行记录,刷新数据透视表后可以自动显示在数据透视表中,对于数据源中新增的列字段,刷新数据透视表后只能显示在【数据透视表字段列表】中,需要重新布局后才可以显示在数据透视表中,如图 10-12所示 图 10-12 新增的列字段存在于【数据透视表字段列表】中 示例 10.3 动态数据透视表新增列字段 借助 VBA 代码,可以让新增的列字段自动显示在数据透视表中,请参照以下步骤 步骤 1 在数据透视表所在的工作表标签上单击鼠标右键, 在弹出的快捷菜单中选择 【查看代码】命令,进入到 VBA 编辑器窗口,在 VBA 代码窗口的代码区域中输入以下代码,如图 10-13 所示 2 图 10-13 在 VBA 编辑器窗口中输入代码 Dim strfld Private Sub worksheet_activate() Dim pv As PivotTable, rng As Range, dfld As PivotField If strfld = ““ Then Exit Sub Set pv = Sheet1.[b3].PivotTable pv.RefreshTable For Each rng In Worksheets(“销售数据“).Range(“data“).Rows(1).Cells If VBA.InStr(1, strfld, “,“ & VBA.Trim(rng)) = 0 Then _ pv.AddDataField pv.PivotFields(rng.Value), “ “ & rng.Value, xlSum Next rng pv.ManualUpdate = False Application.ScreenUpdating = True End Sub Private Sub worksheet_deactivate() 3 Dim pv As PivotTable Set pv = Sheet1.[b3].PivotTable strfld = ““ For Each dfld In pv.PivotFields strfld = strfld & “,“ & dfld.Name Next End Sub 步骤 2 插入“模块 1”并在代码窗口中输入以下代码,如图 10-14 所示。
Public strFld As String 图 10-14 在 VBA 代码窗口中输入“模块 1“代码 步骤 3 按下组合键切换到 Excel 窗口 从现在开始,在“数据源”中新增行列数据后,只要激活数据透视表所在的工作表,数据透视表中就会立即自动显示新增的列字段,如图 10-15 所示 图 10-15 数据透视表新增行列字段自动显示 4 本篇文章节选自《Excel 2010 数据透视表应用大全》 ISBN:9787115300232 人民邮电出版社 。












