Vba 基于定义的变量设置透视过滤器

Vba 基于定义的变量设置透视过滤器,vba,pivot,excel-2013,Vba,Pivot,Excel 2013,我有一个宏,以前在Excel 2007中工作,但最近升级到Excel 2013后停止工作。 宏根据从单元格值读取的定义变量设置透视过滤器。旧代码如下: Sub test() Dim PremState As String PremState = Sheets("FormData").Range("PremSt").Value Sheets("DataPivot").Activate ActiveSheet.PivotTables("PivotTable1").ClearAllFilters Ac

我有一个宏,以前在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变量

如何在新代码中包含对已定义变量的引用?

像这样尝试一下

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