尝试更改Dealing Date
单元格。如果代码单独运行,则单元格会更新,但当作为脚本的一部分放置时,它似乎无法运行:
Sub ChngDate()
Dim pt As PivotTable
Set pt = Worksheets(1).PivotTables(1)
'pt.PivotFields("Dealing Date").ClearAllFilters
' if time is before 12
If Hour(Now) < 12 Then
pt.PivotFields("Dealing Date").CurrentPage = Date
ElseIf Hour(Now) >= 12 Then
pt.PivotFields("Dealing Date").CurrentPage = Date + 1
End If
End Sub
运行上述内容时,我得到:
运行时错误5,无效的过程或调用参数
数据透视表是工作簿中唯一一个位于工作表1中的数据透视表。
知道为什么吗?
答案 0 :(得分:0)
您可以使用以下代码或其他日期模式替换您的代码,例如yyyy/MM/dd
:
pt.PivotFields("Dealing Date").CurrentPage = Format(Date, "dd/MM/yyyy")
pt.PivotFields("Dealing Date").CurrentPage = Format(Date + 1, "dd/MM/yyyy")
但是,无法帮助您选择正确的日期。因为这些行会修改当前显示值。
您可以尝试以下几行:
Sub ChngDate()
Dim pt As PivotTable
Set pt = Worksheets(1).PivotTables(1)
'pt.PivotFields("Dealing Date").ClearAllFilters
' if time is before 12
With pt.PivotFields("Dealing Date")
If Hour(Now) < 12 Then
'pt.PivotFields("Dealing Date").CurrentPage = Date
.PivotItems(Format(Date, "dd/MM/yyyy")).Visible = True
ElseIf Hour(Now) >= 12 Then
'pt.PivotFields("Dealing Date").CurrentPage = Date + 1
.PivotItems(Format(Date + 1, "dd/MM/yyyy")).Visible = True
End If
End With
End Sub