我录制了这个宏来更新16个图表的日期范围。但是,正如您所看到的,我收到运行时错误。
我已经查看了与此相关的stackoverflow上的其他线程,但没有一个接近。 excel上的darn帮助按钮也没有帮助。你能给些建议么?这是代码:
this.studentGrades = arguments;
答案 0 :(得分:2)
这里有一些简单的代码可以让你接近。您需要将此代码中的“MySheet”更改为工作簿中包含数据透视表的工作表的名称,并且您的日期字段必须真正采用“Mmm-YY”格式的文本格式。
Sub ShowThirteenDatesStartingLastMonth()
Sheets("MySheet").PivotTables("PivotTable2").PivotCache.Refresh
Dim Dt As String
With Sheets("MySheet").PivotTables("PivotTable2").PivotFields("Date")
For h = 1 To .PivotItems.Count - 1
On Error Resume Next
.PivotItems(h).Visible = False
Next h
For i = 1 To 13
On Error Resume Next
Dt = Format(DateSerial(Year(Date), Month(Date) - i, 1), "Mmm-YY")
.PivotItems(Dt).Visible = True
Next i
End With
End Sub
答案 1 :(得分:0)
如果没有工作簿的示例,很难知道,但我会尝试命名工作表而不是使用“活动表”。激活或选择任何东西通常也是一个坏主意,相反,你应该允许代码尽可能多地完成工作而不选择任何东西。 这样的事情可能会更好:
With Sheets("MySheet").PivotTables("PivotTable2").PivotFields("Date")
.PivotItems("Sep-15").Visible = False
.PivotItems("Aug-14").Visible = True
End With
答案 2 :(得分:0)
正如乔希所说,你应该参考确切的工作表名称,甚至可能是精确的数据透视表名称。
此外,您应该避免使用.Select
,而是为每个数据透视表声明一个变量,例如。