根据定义的变量设置数据透视过滤器

Set Pivot Filter based on defined variable

我有一个曾经在 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