我正在尝试创建一个宏,该宏将把.CurrentPage
设置为特定值。我的问题是,您可以使用索引值而不是其中一个值的名称吗?
ActiveSheet.PivotTables("PivotTable1").PivotFields("starttime").CurrentPage = "11/19/2018"
这是我正在使用的示例行。问题是日期将每周更改以代表新数据。但是,从星期一到星期五总是有五个选择。因此,我不必使用必须每周更改的日期,而可以使用索引值吗?
即[0]代表星期一,[4]代表星期五,等等。如果可能的话,正确的语法是什么?我在网上浏览了所有内容,却发现与使用索引号代替值无关。
答案 0 :(得分:0)
类似这样的东西
Public arrDate(4) As Date
Sub CreateDateArray()
Dim i As Integer
For i = 0 To 4
arrDate(i) = DateAdd("d", -Weekday(Date, vbMonday) + (i + 1), Date)
Next i
End Sub
或类似的东西
Function DateFromIndex(intDay As Integer) As Date
DateFromIndex = DateAdd("d", -Weekday(Date, vbMonday) + (intDay+1), Date)
End Function
答案 1 :(得分:0)
如果您知道您的字段将仅包含相关项目,而没有其他内容,那么:
With ActiveSheet.PivotTables("PivotTable1").PivotFields("starttime")
.CurrentPage = .PivotItems(3).Value
End With
但是,数据透视表可能retain个项目已从数据源中删除。如果这是为您设置的方式,那么您将需要在使用此代码之前删除缓存的项目,或者计算该页面值而不是在可用值列表中查找它,考虑到它,这应该不难是基于当前一周。