Excel列表框隐藏/取消隐藏工作表

Excel列表框隐藏/取消隐藏工作表,excel,vba,Excel,Vba,我有一个列表框(嵌入在工作表中),它(根据需要单击按钮刷新)将填充工作簿中所有工作表的名称。(每个都有一个复选框。) 代码: 我尝试了一些不同的选择,但无法找到一个解决方案,如何取消隐藏和隐藏工作表,如果他们被选中和取消选中,分别。(如果用户以老式方式手动取消隐藏或隐藏图纸,则选中/取消选中。) 感谢您的帮助。谢谢大家! 试试这个: Private Sub CommandButton1_Click() Dim i As Long Me.ListBox1.Clear F

我有一个列表框(嵌入在工作表中),它(根据需要单击按钮刷新)将填充工作簿中所有工作表的名称。(每个都有一个复选框。)

代码:

我尝试了一些不同的选择,但无法找到一个解决方案,如何取消隐藏和隐藏工作表,如果他们被选中和取消选中,分别。(如果用户以老式方式手动取消隐藏或隐藏图纸,则选中/取消选中。)

感谢您的帮助。谢谢大家!

试试这个:

Private Sub CommandButton1_Click()
    Dim i As Long

    Me.ListBox1.Clear

    For i = 1 To Worksheets.count
        Me.ListBox1.AddItem Worksheets(i).Name

        If Worksheets(i).Visible Then
           Me.ListBox1.Selected(i - 1) = True
        End If
    Next
End Sub

Private Sub ListBox1_Change()
    Dim i As Integer
    For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
            Worksheets(Me.ListBox1.List(i)).Visible = True
        Else
            Worksheets(Me.ListBox1.List(i)).Visible = False
        End If
    Next i
End Sub
  • CommandButtton1
    单击将用工作表名称和复选框填充列表框
  • ListBox1\u Change
    将根据复选框值隐藏/取消隐藏工作表

您的
列表BIX1
是在
用户表单上还是嵌入在工作表中?嵌入在工作表中。如果您有任何提示,我也愿意在浮动用户表单中创建。嘿,Alex,最后一个问题。屏幕似乎在闪烁,即使我添加了一些ScreenUpdate=false。。。你知道为什么吗?
Private Sub ListBox1_Change()屏幕更新=False EnableEvents=False Dim i作为i=0到Me.ListBox1.ListCount的整数-1如果选择了Me.ListBox1.i,那么屏幕更新=False EnableEvents=False工作表(Me.ListBox1.List(i)).Visible=True Else ScreenUpdate=False EnableEvents=False工作表(Me.ListBox1.List(i)).Visible=False End If Next i ScreenUpdate=True EnableEvents=True End Sub
Nevermind!我的脑子不正常。在屏幕更新和启用事件之前需要“应用程序”。再次感谢亚历克斯!!
Private Sub CommandButton1_Click()
    Dim i As Long

    Me.ListBox1.Clear

    For i = 1 To Worksheets.count
        Me.ListBox1.AddItem Worksheets(i).Name

        If Worksheets(i).Visible Then
           Me.ListBox1.Selected(i - 1) = True
        End If
    Next
End Sub

Private Sub ListBox1_Change()
    Dim i As Integer
    For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
            Worksheets(Me.ListBox1.List(i)).Visible = True
        Else
            Worksheets(Me.ListBox1.List(i)).Visible = False
        End If
    Next i
End Sub