我已经将适当的记录输入自动化到我用作数据库的表中,而当对表进行过滤时,输入就不能工作了。
因此,在每次输入记录之前,我都要对DataBase进行反筛选。
Public Sub UnFilter_DB()
Dim ActiveS As String, CurrScreenUpdate As Boolean
CurrScreenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
ActiveS = ActiveSheet.Name
Sheets("DB").Activate
Sheets("DB").Range("A1").Activate
Sheets("DB").ShowAllData
DoEvents
Sheets(ActiveS).Activate
Application.ScreenUpdating = CurrScreenUpdate
End Sub
但现在,它仍然停留在Sheets("DB").ShowAllData
上说:
工作表类失败的ShowAllData方法
因为桌子已经没有过滤了..。
我不知道是否更好地使用像On Error Resume Next
这样的错误处理程序,也不知道如何检测是否存在过滤器或无。
任何指点都欢迎!
发布于 2015-06-16 16:20:53
如果使用Worksheet.AutoFilter.ShowAllData
而不是Worksheet.ShowAllData
,则不会在未筛选任何内容时抛出错误。
这假设为Worksheet.AutoFilterMode = True
,因为否则您将得到一个关于AutoFilter
不是对象的错误。
Public Sub UnFilter_DB()
Dim ActiveS As String, CurrScreenUpdate As Boolean
CurrScreenUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
ActiveS = ActiveSheet.Name
Sheets("DB").Activate
Sheets("DB").Range("A1").Activate
Sheets("DB").AutoFilter.ShowAllData
DoEvents
Sheets(ActiveS).Activate
Application.ScreenUpdating = CurrScreenUpdate
End Sub
https://stackoverflow.com/questions/30869361
复制相似问题