我注意到当有自动过滤器打开时,我的VBA脚本不起作用。知道为什么会这样吗?
wbk.Activate
Set Criteria = Sheets("Sheet1").Cells(i, 1)
Set rng = Sheets("Sheet1").Range(Cells(i, 2), Cells(i, 4))
wb.Activate
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter, but it crashes on this line
Selection.AutoFilter
Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value
rng.Copy
Range("$BC$2:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial
非常感谢
最佳答案
如果启用,则AutoFilterMode将为True,无论实际上是否对特定列应用了过滤器。发生这种情况时,ActiveSheet.ShowAllData
仍将运行,并引发错误(因为没有实际的过滤)。
我有同样的问题,并与它一起工作
If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
这似乎阻止了ShowAllData在没有应用实际过滤器但启用AutoFilterMode的情况下运行。
第二个捕获
Or ActiveSheet.FilterMode
应该捕获高级过滤器关于excel - Worksheet类的ShowAllData方法失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18226045/