繁体   English   中英

图表工作表处于活动状态时,VBA .ShowAllData失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM