【发布时间】:2016-04-04 22:06:28
【问题描述】:
我正在尝试使用 vba 宏创建数据透视表。我可以创建初始数据透视表(图 1),但是当我尝试修改排列(图 2)时出现错误。
啊哈!明白了!
.Orientation = xlRowField
这是关键,使用 1-n 表示事件数。
'Setting Fields
With pt
With .PivotFields("ID")
.Orientation = xlRowField
.Position = 1
End With
'set column field
With .PivotFields("WorkTime")
.Orientation = xlRowField
.Function = xlSum
.Position = 2
End With
'set column field
With .PivotFields("OvertimePeriod")
.Orientation = xlRowField
.Function = xlSum
.Position = 3
End With
With .PivotFields("Sick leave")
.Orientation = xlRowField
.Function = xlSum
.Position = 4
End With
With .PivotFields("Vacation")
.Orientation = xlRowField
.Function = xlSum
.Position = 5
End With
如图 2 所示,它们并非都排成一列!
任何建议将不胜感激。在此先感谢您。
J
【问题讨论】:
-
您指的是索引为 -1 的字段。那是行不通的。尝试使用带引号的字段名称。
-
@DougGlancy 谢谢你的提示。看起来你偶然发现了症结所在。我有 4 个字段,它们都应该相互对齐。
-
@DougGlancy 哎呀。我想我正在寻找方向和位置变量来实现这一点......我会使用“方向”保留所有变量:xlRowField 和位置:1、2、3、4?我会试着玩弄这些
-
“绊倒了?”几乎不!很高兴我能帮上忙。
-
@DougGlancy 似乎无法使用宏在第 2 列中全部格式化此数据。这让我精神崩溃!有什么建议么?查看更新的代码