运行时错误' 1004' Worksheets类的ShowAllData方法失败

时间:2015-11-20 09:46:00

标签: excel vba excel-vba filter

我很困惑。有人可以试着为我解释一下。 下面是录制的宏观使用的一部分。有时它运行时没有错误,10分钟后,错误消息在标题字段中获取,并在最后的ActiveSheet.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**

2 个答案:

答案 0 :(得分: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 :(得分:0)

ActiveWorkbook.Sheets(Constants.MySheetName).Select
ActiveWorkbook.ActiveSheet.ListObjects(Constants.MyTblName).HeaderRowRange.Select

On Error Resume Next

ActiveWorkbook.ActiveSheet.ShowAllData

On Error GoTo 0

通过使用HeaderRowRange值,选择的表没有显式的行和列。