【发布时间】:2021-02-12 04:11:50
【问题描述】:
我想显示一个字段及其值列,以便我可以过滤数据透视表中的字段列。
我第一次使用录制宏选项是因为我不太了解 VBA。然后我把它清理干净了。这是我记录的动作:
- 从我的数据透视表中删除一个字段(“Present”)
- 向我的数据透视表添加一个字段(“周”)
- 将相同的字段添加到区域 VALUES 创建 另一个名为“周计数”的列
- 将“周计数”更改为“周总和”
- 隐藏显示“周总和”的列
- 为 过滤字段“周”
结束录制
我对 VBA 了解不多,但我正在通过清理我所做的记录来学习。这是代码的样子(经过一些清理):
Sub NewHires()
' NewHires Macro
Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Present").Orientation = _
xlHidden
With Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Week")
.Orientation = xlRowField
.Position = 9
End With
Sheets("CrewSheets").PivotTables("PivotTable1").AddDataField Sheets("CrewSheets").PivotTables( _
"PivotTable1").PivotFields("Week"), "Sum of Week", xlSum
With Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Sum of Week")
.Caption = "Sum of Week"
End With
Columns("J:J").EntireColumn.Hidden = True
Sheets("CrewSheets").PivotTables("PivotTable1").PivotFields("Week").PivotFilters.Add2 _
Type:=xlValueIsLessThan, DataField:=Sheets("CrewSheets").PivotTables("PivotTable1"). _
PivotFields("Sum of Week"), Value1:=11
End Sub
问题是,“周”字段被“周总和”字段替换,因此不会过滤。我有一种感觉,它与名称有关,而 VBA 看不到数据透视表字段“周”和表值“周总和”之间的差异。
如果我可以过滤数据透视表放入“周总和”的列,那么这可能是一个修复。但我不能。我需要让它在数据透视表中过滤,这正是我手动执行它时所做的。
-下面更新-
宏之前:
宏之后
应该是什么样子的
为了澄清,我没有像往常一样在“它应该是什么样子”图片中隐藏 J:J 列。
【问题讨论】:
-
您能否创建一个组合图像来显示之前和之后的数据透视表中的字段列表?并排合并图像,因为我认为您可能只能添加单个链接。
-
添加了包含图片的更新。
-
感谢您的更新。我的意思是您在显示枢轴字段中看到的安排......例如gofile.io/d/jlTITI pastebin.com/WuCHQGkE
标签: excel vba pivot-table