【问题标题】:Unhiding very hidden sheet Excel VBA取消隐藏非常隐藏的工作表Excel VBA
【发布时间】:2014-08-07 23:49:52
【问题描述】:

我正在尝试创建一个用户表单,该表单将根据用户表单上组合框的值取消隐藏特定工作表。工作簿中有 3 个“非常隐藏”的不同工作表。组合框填充了 3 个选项,每个隐藏工作表一个。我正在使用选择案例使正确的工作表可见(最终会有超过 3 个工作表/选项。示例代码如下(位于用户表单代码窗口中):

Private Sub NextButton_Click()

Select Case ComboBox
    Case ComboBox.ListIndex = 0
        Sheets(1).Visible = True
    Case ComboBox.ListIndex = 1
        Sheets(2).Visible = True
    Case ComboBox.ListIndex = 2
        Sheets(3).Visible = True
End Select
Unload UserForm
End Sub

我单击下一步按钮,用户窗体卸载,但工作表不可见。 VBA 也不会出现错误。如果我需要提供更多信息,请告诉我。

尼克

【问题讨论】:

    标签: excel worksheet vba


    【解决方案1】:

    您的案例陈述不正确。您应该在第一部分告诉它要测试的值,然后再指定值。见Tech on the Net article about Case in VBA。

    Private Sub NextButton_Click()
    
    Select Case ComboBox.ListIndex
        Case 0
            Sheets(1).Visible = True
        Case 1
            Sheets(2).Visible = True
        Case 2
            Sheets(3).Visible = True
    End Select
    Unload UserForm
    End Sub
    

    这就是大多数编程语言中 case 语句的工作方式。

    但是,由于 ComboBox.ListIndex 是一个 int,并且您要告诉它要根据它显示什么工作表,您可以简化整个事情并删除 case 语句。这假定索引匹配,他们在您的示例中这样做。

    Private Sub NextButton_Click()  
    Sheets(ComboBox.ListIndex+1).Visible = True
    Unload UserForm
    End Sub
    

    【讨论】:

    • 感谢您的回复!我知道我做错了什么。我修改了我的代码并修复了 case 语句,但工作表仍然不可见。代码位于用户表单中,应该在其他地方吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多