2015-11-20 582 views
1

Iam變得困惑。有人可以試着爲我解釋這一點。 下面是使用的記錄宏的一部分。有時它運行沒有錯誤,而10分鐘後生病在標題字段中得到錯誤信息,它停在最後一個ActiveSheet.ShowAllData運行時錯誤「1004」工作表類失敗的ShowAllData方法

它對於mer很不合邏輯,但可能有一個解釋。 林總是在相同的片材激活當宏..

Sheets("DB2 Totbel").Select 
    ActiveSheet.ShowAllData 
    Sheets("DB2 Giva").Select 
    ActiveSheet.ShowAllData 
    Sheets("TS4LAGER").Select 
    ActiveSheet.ShowAllData 
    Sheets("PIX").Select 
    ActiveWorkbook.Worksheets("PIX").ListObjects("Table_Query_from_DB2W").Sort. _ 
     SortFields.Clear 
    Sheets("OFO data").Select 
    ActiveSheet.ShowAllData 
    Sheets("Arbetsyta").Select 
    **ActiveSheet.ShowAllData** 
+0

看到這裏的http:// stackoverflow.com/questions/18226045/showalldata-method-of-worksheet-class-failed – Davesexcel

回答

1

這取決於的FilterMode狀態。

就個人而言,我做了這個(用戶將不會看到任何發生的事情)取消在紙張上的過濾器:

Public Sub UnFilter_Tables_On_Sheet(Sheet_Name As String) 
Dim ActiveS As String, CurrScreenUpdate As Boolean 

CurrScreenUpdate = Application.ScreenUpdating 
Application.ScreenUpdating = False 
ActiveS = ActiveSheet.Name 

    Sheets(Sheet_Name).Activate 
    Sheets(Sheet_Name).Range("A1").Activate 
    On Error Resume Next 
    If Sheets(Sheet_Name).FilterMode = True Then Sheets(Sheet_Name).ShowAllData 
    On Error GoTo 0 

    DoEvents 
    Sheets(ActiveS).Activate 

Application.ScreenUpdating = CurrScreenUpdate 
End Sub 

您可以簡單地使用這樣的:Call UnFilter_Tables_On_Sheet("Sheet1")

+1

完美..感謝,這將減少我以前的代碼很多,因爲我現在激活一個過濾器只是爲了能夠清除它以後與上述(我以前記錄的代碼)。完美的公共呼叫.. – NewbieExcelVBA

相關問題