Excel ActiveX Listbox在使其不可见,然后可见之后没有响应

时间:2017-03-30 09:34:58

标签: excel-vba listbox activex visible disabled-control

请问我有意见吗?

我在ActiveX控件中托管了一组用户设置选项。用户进行选择并单击按钮。这会隐藏面板并显示结果。另一个按钮删除结果并再次显示ActiveX对象面板

隐藏工作,但当ActiveX对象再次可见时,Listbox ActiveX控件(而不是其他对象)不再起作用,就好像我处于设计模式一样。我在Excel 2013中遇到此问题,它在Excel 2010中工作。

I have seen similar issues solved with MS Office updates,但我没有他们描述的确切症状。我不希望我能说服我的IT部门负责MSOffice的更新,如果有必要,欢迎采用变通方法。

代码片段 - 在下面。如果我对hide sub的这一部分发表评论,则问题不会发生。

Sub HideFilters()

...

For Each shp In ActiveSheet.Shapes
    If Left(shp.Name, Len("AutoShape_Index_")) <> "AutoShape_Index_" Then
        If Left(shp.Name, Len("Gant_btn")) <> "Gant_btn" Then
            shp.Visible = False
        End If
    End If
Next

'''

End Sub

Sub ShowFilters()

...

For Each shp In ActiveSheet.Shapes
    If Left(shp.Name, Len("AutoShape_Index_")) <> "AutoShape_Index_" Then
        If Left(shp.Name, Len("Gant_btn")) <> "Gant_btn" Then
            shp.Visible = True
        End If
    End If
Next

...

End Sub

1 个答案:

答案 0 :(得分:0)

当我尝试下面的代码时,在我的Active-X Controls(不推荐)中取消隐藏所有ActiveSheet,其名称不以“AutoShape_Index_”或“Gant_btn”开头。

Option Explicit

Sub ShowFilters()

Dim Shp As Shape

For Each Shp In ActiveSheet.Shapes
    If Not Shp.Name Like "AutoShape_Index_*" And Not Shp.Name Like "Gant_btn*" Then
        Shp.Visible = True
    End If
Next

End Sub