这对于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 :(得分: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值,选择的表没有显式的行和列。