您可以将索引值分配给.Currentpage VBA / Excel吗?

时间:2018-11-27 15:30:33

标签: excel vba

我正在尝试创建一个宏,该宏将把.CurrentPage设置为特定值。我的问题是,您可以使用索引值而不是其中一个值的名称吗?

ActiveSheet.PivotTables("PivotTable1").PivotFields("starttime").CurrentPage = "11/19/2018"

这是我正在使用的示例行。问题是日期将每周更改以代表新数据。但是,从星期一到星期五总是有五个选择。因此,我不必使用必须每周更改的日期,而可以使用索引值吗?

即[0]代表星期一,[4]代表星期五,等等。如果可能的话,正确的语法是什么?我在网上浏览了所有内容,却发现与使用索引号代替值无关。

2 个答案:

答案 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个项目已从数据源中删除。如果这是为您设置的方式,那么您将需要在使用此代码之前删除缓存的项目,或者计算该页面值而不是在可用值列表中查找它,考虑到它,这应该不难是基于当前一周。