【发布时间】:2013-10-01 10:52:11
【问题描述】:
最近我正在学习如何使用 VBA 在 Excel 中自动创建数据透视表,而 Excel.Range.Group() 方法的实现让我感到很奇怪。第四个参数Periods 采用一个包含7 个元素的布尔值数组来指示分组是按秒、分、小时、天、月、季度还是年。通常,您会通过使用 Enum 类型来完成类似的操作,该类型的成员可以是 Or'd 一起表示打开了一个或多个选项 - 其中的 MsgBox function is a good example。
例如,我本来希望用法更像这样......
MyPivotTable.DataRange.Cells(1).Group Periods:=vbGroupPeriods.Days Or _
vbGroupPeriods.Months
而不是...
MyPivotTable.DataRange.Cells(1).Group Periods:=Array(False, False, False, _
True, True, False, False)
我环顾四周,试图理解为什么它是用Array 完成的,但到目前为止还是空手而归。所以,我的问题是为什么要这样做?是否有一些我没有看到的限制?这是某人的个人选择吗?或者这只是一个谜?不是想抱怨,只是想理解。
【问题讨论】:
-
我猜这只是某人/某个团体做出的决定......
-
我注意到
PivotField.Subtotals似乎有类似的东西——如果没有指定索引,你会得到一个布尔数组。
标签: arrays excel grouping pivot-table vba