2016-08-15 45 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中有時不能/不想運行的私人潛艇和PLAY鍵運行或按F5

+0

如果它是一個代碼模塊(不是對象或類),那麼'public'是默認的作用域。 – Brian

+0

@litelite它的工作原理 - 非常感謝! –

+0

@litelite可以請你看看這個問題/問題:[鏈接](http://stackoverflow.com/questions/38970726/how-to-run-a-macro-automaticly?noredirect=1#comment65296705_38970726) –