2015-12-31 4 views
1

У меня есть макрос, который использовался для работы в Excel 2007, но после недавнего обновления до Excel 2013 перестала работать. Макрос устанавливает сводный фильтр на основе определенной переменной, считанной из значения ячейки. Старый код ниже:Установить Pivot Filter на основе определенной переменной

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]" 

это работает для выбранного вручную состояния (в данном случае СА), но я не могу заставить его работать с предопределенной переменной PremState.

Как включить ссылку на определенную переменную в новый код?

ответ

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 
+0

надеюсь, что это помогает ... – WhiteHat