我注意到当自动过滤器已打开时我的 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
当没有应用实际过滤器但打开了 AutoFilterMode 时,这似乎会阻止 ShowAllData 运行。
第二次捕获Or ActiveSheet.FilterMode
应该捕获高级过滤器
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)