Excel VBA:根据Combobox选择隐藏页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA:根据Combobox选择隐藏页面相关的知识,希望对你有一定的参考价值。

我有一个值为“无”,“1”,“2”,“3”和“4”的组合框。我希望看到Combobox显示的页数。我怎样才能做到这一点?即组合框= 3 - 第1,2和3页变得可见。

答案

替代:

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

用户输入的数据验证始终很重要 - 如何处理错误的输入?一个更好的问题是:如何防止输入错误。

一点解释:

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

终于明白了

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

以上是关于Excel VBA:根据Combobox选择隐藏页面的主要内容,如果未能解决你的问题,请参考以下文章

excel表VBA中用代码如何建立多级combobox下拉菜单

求VBA高手 ComboBox 自动出现在单元格,选择值后自动赋值给当前单元格的问题

想在excel里用VBA,点击按钮复制一行数据到另外一行,可是不知道该怎么写

VBA - 变量获取 ComboBox 值,否则获取 TextBox 值错误

VBA-Excel ComboBox 具有条目列表,首先显示最后输入的值

从组合框中选择下一个项目,然后单击 Excel VBA 按钮