Excel VBA-表的ShowAllData失败

时间:2018-11-28 13:43:35

标签: excel vba autofilter excel-tables

我有更长的VBA(另请参阅我以前的问题:https://stackoverflow.com/questions/53206850/copy-rows-which-match-criteria-into-two-or-more-different-sheets-in-excel-with-v)

一件特别的东西不能正常工作。我希望表格在执行模块中的先前操作后立即 ShowAllData 。 我到目前为止编写的这段代码,只要我来自表格的一个单元格,只要运行,它就可以正常运行。当我从工作表上的另一个地方运行它时,它不会再次显示所有数据。它一直挂在表的过滤模式下。

   Sub CopyOrders()

'Sorting column STOCK in ORDERS from A-Z
    Worksheets("Orders").ListObjects("Orders").Sort. _
        SortFields.Clear
    Worksheets("Orders").ListObjects("Orders").Sort. _
        SortFields.Add2 Key:=Range("Orders[[#All],[STOCK]]"), SortOn:= _
        xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With Worksheets("Orders").ListObjects("Orders").Sort
        .Apply
    End With

'Delete all rows from table NoStockOrders
On Error Resume Next
Worksheets("NoStockOrders").ListObjects("NoStockOrders").DataBodyRange.EntireRow.Delete

'Copy all orders which have no stock to
'the sheet NoStockOrders
Worksheets("Orders").Range("ORDERS").AutoFilter _
    Field:=6, Criteria1:="0", VisibleDropDown:=True
On Error Resume Next
Worksheets("Orders").Range("ORDERS").SpecialCells _
    (xlCellTypeVisible).Copy
    Range("NoStockOrders").PasteSpecial _
    Paste:=xlPasteValues

If Worksheets("Orders").ListObjects("Orders").FilterMode Then
    Worksheets("Orders").AutoFilter.ShowAllData
End If

1 个答案:

答案 0 :(得分:1)

应该是:

Worksheets("Orders").ListObjects("Orders").Autofilter.showalldata