1

我创建了一个用户表单(在 VBA Projectbrowser 中手动创建)。我编写了 VBA 代码,它在运行时(等)用不同的对象填充这个用户Labels表单Optionbuttons。到目前为止一切正常

用户表单中填充了从我的 Excel 工作表中读取并正确显示的数据。但是我无法从上面的对象中读取输入(例如Optionbutton - TRUE or FALSE)。这些对象不会出现在任何地方(用户窗体上除外),因此我可以链接它们并在另一个模块中使用它们。

我猜它们只是显示出来,并没有真正读入内存或其他任何东西(初始化!?)。

4

1 回答 1

1

有两种方法可以解决。

方式 1

将您的选项按钮对象声明为 Public。

模块代码

Public theOpBut As Object

Sub Fill()
    If theOpBut.Value = True Then
        ActiveSheet.Cells(1, 5) = 1
    Else
        ActiveSheet.Cells(1, 5) = "NO"
    End If
End Sub

用户表单代码

Private Sub UserForm_Initialize()
    Set theOpBut = UserForm1.Controls.Add("Forms.optionbutton.1", "OptionButton", True)
        With theOpBut
        .Caption = "Test Button"
        '.GroupName = OpButGroupCounter
        .Top = 10
        .Left = 20
        .Height = 16
        .Width = 50
        .Font.Size = 12
        .Font.Name = "Ariel"
    End With
End Sub

Private Sub CommandButton1_Click()
    Call Fill
End Sub

方式 2

声明一个Boolean变量并创建选项按钮的单击事件,然后Boolean在该单击事件中设置变量的值。要在运行时创建选项按钮的单击事件,请参阅此示例

然后,您可以检查Boolean变量 in的值Sub Fill()并采取相应措施。

于 2013-11-10T08:59:30.290 回答