[英]VBA .ShowAllData fails when a Chart Sheet is active
我将下面的代码附加到Excel中用户窗体上的按钮上。 代码的其他部分也执行高级过滤,在重新应用过滤器之前,我使用下面的代码清除过滤器,以使其运行更快。 只要wsDataSchool是活动工作表或其他活动工作表,它就可以正常工作。 但是,如果在单击按钮之前有一个活动的CHART工作表,则会收到一条错误消息,指出ShowAllData失败。 这太奇怪了,我找不到任何东西。 关于为什么会发生或如何解决的任何想法?
If wsDataSchool.FilterMode = True Then
wsDataSchool.ShowAllData
End If
然后添加一个测试。 这将测试当前工作表是否为图表工作表,如果是,则按代号激活目标工作表。
Option Explicit
Public Sub test()
If wsDataSchool.FilterMode Then
Select Case ActiveSheet.Type
Case -4167
wsDataSchool.ShowAllData
Case Else
wsDataSchool.Activate
wsDataSchool.ShowAllData
End Select
End If
End Sub
尽管很丑陋,但是如果需要在图表表中返回到图表表,则可以如下所示:
Public Sub test1()
Application.ScreenUpdating = True
Dim ws As Chart
If wsDataSchool.FilterMode Then
Select Case ActiveSheet.Type
Case -4167
wsDataSchool.ShowAllData
Case Else
Set ws = ActiveSheet
wsDataSchool.Activate
wsDataSchool.ShowAllData
ws.Activate
End Select
End If
Application.ScreenUpdating = False
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.