我有一个曾经在Excel 2007中工作的宏,但在最近升级到Excel 2013后停止工作。 宏根据从单元格值读取的已定义变量设置透视过滤器。旧代码如下:
Sub test()
Dim PremState As String
PremState = Sheets("FormData").Range("PremSt").Value
Sheets("DataPivot").Activate
ActiveSheet.PivotTables("PivotTable1").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("PremSt_A").CurrentPage = PremState
End Sub
我在Excel 2013中录制了一个可以执行相同功能的新宏。我得到了以下代码示例:
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Range].[PremSt_A].[PremSt_A]").CurrentPageName = "[Range].[PremSt_A].&[CA]"
这适用于手动选择的状态(在本例中为CA),但我无法使其与预定义的PremState变量一起使用。
如何在新代码中包含对已定义变量的引用?
答案 0 :(得分:1)
尝试这样......
Sub test()
Dim PremState As String
PremState = Sheets("FormData").Range("PremSt").Value
Sheets("DataPivot").Activate
ActiveSheet.PivotTables("PivotTable1").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Range].[PremSt_A].[PremSt_A]").CurrentPageName = _
"[Range].[PremSt_A].&[" & PremState & "]"
End Sub