Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:基于组合框选择隐藏页面_Excel_Vba_Combobox_Multipage - Fatal编程技术网

Excel VBA:基于组合框选择隐藏页面

Excel VBA:基于组合框选择隐藏页面,excel,vba,combobox,multipage,Excel,Vba,Combobox,Multipage,我有一个带有值的组合框:无、1、2、3和4。我想让组合框显示的页面数可见。我怎样才能做到这一点?i、 e.组合框=3-第1、2和3页变为可见 终于拿到了 Private Sub ComboBox1_Change() Select Case ComboBox1.Text Case "none" Me.MultiPage2(0).Visible = False Me.MultiPage2(1).Visible = False Me.MultiPage2(2).Visible = False Me.M

我有一个带有值的组合框:无、1、2、3和4。我想让组合框显示的页面数可见。我怎样才能做到这一点?i、 e.组合框=3-第1、2和3页变为可见

终于拿到了

Private Sub ComboBox1_Change()
Select Case ComboBox1.Text
Case "none"
Me.MultiPage2(0).Visible = False
Me.MultiPage2(1).Visible = False
Me.MultiPage2(2).Visible = False
Me.MultiPage2(3).Visible = False
Case "1"
Me.MultiPage2(0).Visible = True
Me.MultiPage2(1).Visible = False
Me.MultiPage2(2).Visible = False
Me.MultiPage2(3).Visible = False
Case "2"
Me.MultiPage2(0).Visible = True
Me.MultiPage2(1).Visible = True
Me.MultiPage2(2).Visible = False
Me.MultiPage2(3).Visible = False
Case "3"
Me.MultiPage2(0).Visible = True
Me.MultiPage2(1).Visible = True
Me.MultiPage2(2).Visible = True
Me.MultiPage2(3).Visible = False
Case "4"
Me.MultiPage2(0).Visible = True
Me.MultiPage2(1).Visible = True
Me.MultiPage2(2).Visible = True
Me.MultiPage2(3).Visible = True
End Select
End Sub
另一种选择:

Private Sub ComboBox1_Change()  ' Could also use a number spinner to control user input
Dim pgCount as Short
    ' Some data validation
    pgCount = IIf(isnumeric(ComboBox1.Text),CShort(ComboBox1.Text),0)
    pgcount = iif(pgCount >= 0 and pgCount < 5, pgCount,0)

    Me.MultiPage2(0).Visible = pgCount > 0
    Me.MultiPage2(1).Visible = pgCount > 1
    Me.MultiPage2(2).Visible = pgCount > 2
    Me.MultiPage2(3).Visible = pgCount > 3
End Sub
用户输入的数据验证始终很重要-如何处理错误的输入?一个更好的问题是:首先,如何防止错误输入

一点解释:

数据验证首先检查用户是否输入了表示数字的内容 如果输入类似于数字,则将其转换为数字。在这种情况下,将其转换为短字符将删除用户可能输入的任何小数位数。 如果输入与数字不相似,则使用0代替软失败 如果转换的数字介于0 None和4之间,则为OK,否则将其设置为0另一个软失败。 [数据转换结束] 接下来的四行使用简单的布尔逻辑来确定是否应该显示选项卡。我用你的答案代码来确定逻辑。