【问题标题】:Option button selection event in VBA, ExcelVBA,Excel中的选项按钮选择事件
【发布时间】:2017-04-28 15:45:40
【问题描述】:

我在VBA上创建了一组选项按钮,选择时必须在授权相应的事件时。示例:如果选择了 OptionButton1,则必须出现对应于该按钮的特定代码行。我尝试使用下面的代码,但它不起作用,正确的语法是什么?

      If o1.Value = True Then
      stmt1
      ElseIf o2.Value = True Then
      stmt2
      End If

这里的 o1 和 o2 是两个不同的选项按钮。

【问题讨论】:

  • “它不起作用”信息量不是很大。尝试使用 F8 来发现问题。另外,你是如何运行代码的?
  • @CMArg 按我创建的表单中的常规按钮运行代码。

标签: excel vba


【解决方案1】:

也许以下截屏视频可以帮助您解决问题。

这类项目最重要的是 (1) 名称正确,(2) 按钮的代码位于表单上,以及 (3) 其他宏的代码位于模块中.

请注意,我在截屏视频中调整了选项按钮的名称。由于按钮的代码在窗体上,Me 引用窗体,VBE 自动检测窗体上所有可用的对象。因此,当我开始输入 Me. 时,我会自动看到名称为 .01.02 的两个选项按钮。

另外,请注意.Value 不是必需的,因为它是默认设置。因此,将它添加到代码中或跳过它不会改变任何东西(它仍然会按原样工作)。最后,无需检查True = True。如果选项按钮.ValueTrue,那么If 语句会将其评估为True。所以,你可以再一次决定跳过写= True(就像我一样),或者你可以将它添加到代码中。这不会改变任何事情,它会以任何一种方式工作。

【讨论】:

    【解决方案2】:

    您可以像这样使用更改事件:

    Private Sub Option_Button_1_Change()
    
        If Option_Button_1.value = True Then
                MsgBox "Option_Button_1 selected"
            Else
                MsgBox "Option_Button_2 selected"
        End If
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多