我创建了一个Userform(在VBA Projectbrowser中手动创建)。我编写了VBA代码,它在运行时使用不同的对象填充此Userform(Labels
,Optionbuttons
等)。到目前为止一切正常
Userform填充了从Excel工作表中读取并正确显示的数据。但是我无法读取其上对象的输入(例如Optionbutton - TRUE or FALSE
)。这些对象不会出现在任何地方(在用户窗体上除外),以便我可以链接它们并在另一个模块中使用它们。
我猜它们只是显示而没有真正读入内存或其他任何内容(初始化!?)。
答案 0 :(得分: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
变量并创建Option按钮的click事件,然后在该click事件中设置Boolean
变量的值。要在“运行时”创建“选项”按钮的单击事件,请参阅THIS EXAMPLE
然后,您可以检查Boolean
中Sub Fill()
变量的值,并采取相应的行动。