【问题标题】:Compile error with If statement on radiobutton.value使用 Radiobutton.value 上的 If 语句编译错误
【发布时间】:2015-01-21 21:48:17
【问题描述】:

我正在尝试执行“如果已选中单选框”的操作,但出现错误:

编译错误:找不到方法或数据成员。

我创建了一个带有四个单选按钮(使用控件工具箱)和一个命令按钮的用户窗体。用户表单加载到 excelsheet 中(单击单独的按钮),并且可以检查单选按钮。如果选中单选按钮并单击命令按钮,我希望执行一些操作,但它不会编译我的代码。

Private Sub cmdCSV_Click()

    Dim JurBen As Integer

    With Thisworkbook

        If .lblRKinst.Value = True Then
            JurBen = 1 
            MsgBox "hurray"
        ElseIf .lblRKkon.Value = True Then
            JurBen = 2 
        ElseIf lblForinst = True Then
            JurBen = 3 
        ElseIf lblForkon = True Then
            JurBen = 4 
        Else: Exit Sub

        MsgBox ("Choose an option")

End If

它似乎不喜欢“值”语句,它适用于复选框?我已经尝试过“启用”并且没有任何东西。我似乎是互联网上唯一遇到这个问题的人......

由于我在这个小问题上花费了大量时间,并且似乎被卡住了,任何帮助将不胜感激!

【问题讨论】:

  • 用户窗体上的rudiobuttons,对吗?您需要删除 With ThisWorkbook 语句,因为单选按钮属于 UserForm 对象 (Me) 而不是 ThisWorkbook 对象。此外,您还缺少 If 块的 End If 语句。
  • 是的,它们在用户表单上。我试过删除“with”语句(以及单选按钮前面的点),但我得到了同样的编译错误。 The End if 存在,只是没有移入。
  • 我知道这是一个非常愚蠢的问题,但我在您的代码中看不到任何错误。您确定lblRKinst 实际上是一个单选按钮,而不是靠近它的标签(如它建议lbl)?
  • 天啊........ Matteo NNZ,你完全正确!我引用了它旁边的标签,它甚至在名字中这么说!太感谢了!! (感觉有点傻!)

标签: vba radio-button checked


【解决方案1】:

正如 Matteo NNZ 所写,我只是引用了标签,而不是它旁边的单选按钮。

没问题,因为上面的代码可以正常工作。

【讨论】:

    【解决方案2】:

    如果 Radioboxes 在 UserForm 上,那么如果您想检查它们的值,那么 1. UserForm 必须在那时加载,2. 您需要参考 UserForm。

    例子:

    if UserForm1.OptionButton1.Value = true then
    

    单选框(在我的示例中为 OptionButton1)是 UserForm 的成员,而不是 ThisWorkbook 的成员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-24
      • 2021-09-22
      • 2018-01-16
      • 1970-01-01
      • 2019-10-07
      • 2017-04-28
      • 2013-04-03
      • 1970-01-01
      相关资源
      最近更新 更多