Dre*_*pin 9 arrays grouping vba pivot-table excel-vba
最近我学习了如何使用VBA在Excel中自动创建数据透视表,并且该Excel.Range.Group()
方法的实现让我感到奇怪.第四个参数Periods
采用7个元素的布尔值数组来指示分组是按秒,分钟,小时,天,月,季度还是年.通常情况下,您可以通过使用一种Enum
类型来完成这样的事情,该类型的成员可以Or
一起表示已打开一个或多个选项 - 该MsgBox
函数就是一个很好的例子.
例如,我原本期望使用更像这样......
MyPivotTable.DataRange.Cells(1).Group Periods:=vbGroupPeriods.Days Or _
vbGroupPeriods.Months
Run Code Online (Sandbox Code Playgroud)
代替...
MyPivotTable.DataRange.Cells(1).Group Periods:=Array(False, False, False, _
True, True, False, False)
Run Code Online (Sandbox Code Playgroud)
我环顾四周试图理解为什么用它来完成Array
,但迄今为止空手而归.所以,我的问题是为什么这样做?我有没有看到一些限制?这是个人的个人选择吗?还是只是一个谜?不要试图抱怨,只是想了解.
Q1. 为什么要这样做?
也许是因为它给了你更多的灵活性?对我来说,输入True
7 次更容易
Array(True, True, True, True, True, True, True)
Run Code Online (Sandbox Code Playgroud)
而不是说
vbGroupPeriods.Seconds Or _
vbGroupPeriods.Minutes Or _
vbGroupPeriods.Hours Or _
vbGroupPeriods.Days Or _
vbGroupPeriods.Months Or _
vbGroupPeriods.Quarters Or _
vbGroupPeriods.Years
Run Code Online (Sandbox Code Playgroud)
而且数组中的顺序也不是很难记住......
秒-->分钟-->小时-->天-->月-->季度-->年
Q2。是否有一些我没有看到的限制?
否 没有这样的限制。
Q3。这是某人的个人选择吗?或者这只是一个谜?
不:)没有什么神秘的。这从来不是某人的个人选择。Microsoft 有一个专门负责 Excel 开发的团队,负责决定并灌输特定的特性/功能。