2016-08-15 4 views
1

Любая идея, почему я не могу запустить этот код как макрос?Невозможно запустить этот код как макрос

Sub PivotFilter() 

Application.ScreenUpdating = False 

Dim PI As PivotItem 

With Worksheets("Sheet2").PivotTables("PivotTable2").PivotFields("OrgUnit Code:") 
    .ClearAllFilters 

    'Refreshing pivot table seems to remove the "set visible property" error 
    Worksheets("Sheet2").PivotTables("PivotTable2").RefreshTable 

For Each PI In .PivotItems 
    PI.Visible = WorksheetFunction.CountIf(Range("b:b"), PI.Name) > 0 
Next PI 

End With 

    Worksheets("Sheet2").PivotTables("PivotTable1").RefreshTable 

End Sub 

Любая идея, что причиной этого может быть?

Большое спасибо заранее.

+0

Что ошибка вы получаете? – litelite

+0

В какой строке происходит ошибка? – Brian

+1

Устанавливаете ли свойство ScreenUpdating значение True где-то? – pnuts

ответ

1

Попробуйте сделать это общественное

Public Sub PivotFilter() 
    '... 
End Sub 

Excel иногда не могут/не хотят запускать частные субмарины при работе с кнопкой воспроизведения или нажмите f5

+0

Если это модуль кода (не объект или класс), тогда 'public' является областью по умолчанию. – Brian

+0

@litelite Он работает - большое спасибо! –

+0

@ litelite вы можете посмотреть эту проблему/вопрос: [ссылка] (http://stackoverflow.com/questions/38970726/how-to-run-a-macro-automaticly?noredirect1_comment65296705_38970726) –

Смежные вопросы