【问题标题】:How to execute macro associated with a check box in a UserForm如何执行与用户窗体中的复选框关联的宏
【发布时间】:2018-01-17 18:55:30
【问题描述】:

我正在使用 UserForm 开发分析模板。
我有与复选框相关的宏。我想通过单击单独的分析命令框来激活它们。宏被称为:graph_dur、graph_ram、dur_calc、ram_calc。

用户窗体允许用户检查他们想要的分析,然后使用“分析”命令按钮运行计算。

任何未选中的框在单击“分析”时不应运行其宏。

我了解当复选框被“选中”时,它会返回“True”。
我不知道如何将 True 返回与激活“分析”时运行宏。

此代码不正确,但试图突出显示我的基本布局。

Private Sub CheckBox1_Click() 
    If CheckBox1 = True
        Then Call.Graph_duration
    Else CheckBox1 = False
    End If 
End Sub

Private Sub CheckBox2_Click()
    If CheckBox2 = True
        Then Call.Graph_ram
        Else CheckBox2 = False
    End If
End Sub

【问题讨论】:

  • “单独分析命令框”是什么意思?
  • 尝试使用 CheckBox1.Value =True,但是在编写代码的过程中,您已经调用了函数,通常您会创建一个按钮来检查所有复选框,然后调用函数跨度>
  • 对不起,我的措辞不好。在附图中,有一个名为“分析”的命令按钮。应该激活此按钮以运行与选中框关联的宏。
  • 这是一个好点dantakeshi,它得到了我的问题的根源。也就是说,您如何识别用户选择了哪些框,然后只运行那些“选中”的宏。有些宏不会被使用,因为某些用户可能不需要它们进行分析。

标签: excel vba checkbox userform


【解决方案1】:

也许您的意思是这样的 - 它应该附加到您的按钮上。如果你有很多复选框,那么这将变得低效。

Private Button_Click()

    If CheckBox1 Then
        Graph_Duration
    End If

    If CheckBox2 Then
        Graph_ram
    End If
    'etc

End Sub

【讨论】:

  • 这是说:“如果 CheckBox 1 已被选中,请执行 graph_...”?
  • 如果没有选中任何框,它会什么都不做吗?
  • 是的。请注意,Then 与 If 在同一行。你不需要指定 =True 并且你的 Else 在我看来是多余的。
  • 啊哈。非常感谢 SJR。我知道我的代码需要什么,但对 VBA 语法知之甚少。
  • 是的,我会接受。只是出于好奇,这对您的个人资料有什么影响?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2021-05-21
  • 2013-08-21
  • 2019-12-31
  • 2012-09-04
相关资源
最近更新 更多