取消隐藏非常隐藏的表格Excel VBA

时间:2014-06-17 20:28:21

标签: excel excel-vba worksheet vba

我正在尝试创建一个用户表单,该表单将根据用户表单上组合框的值取消隐藏特定工作表。有3种不同的工作表是"非常隐蔽"在工作簿中。组合框中有3个选项,每个隐藏工作表一个。我正在使用select case来使正确的工作表可见(最终会有超过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也没有出现任何错误。如果我需要提供更多信息,请告诉我。

的Nik

1 个答案:

答案 0 :(得分:3)

您的个案陈述不正确。您应该告诉它在第一部分中要测试的值,然后稍后指定值。请参阅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