读取用户窗体对象值
我创build了一个用户窗体(在VBA Projectbrowser中手动)。 我已经编写了VBA代码,它在运行时用不同的对象( Labels
, Optionbuttons
等)填充这个用户窗体。 到目前为止一切正常
用户表单中充满了从我的Excel工作表中读取的数据并正确显示。 但是我无法读取来自对象的input(例如Optionbutton - TRUE or FALSE
)。 这些对象不会出现在任何地方(用户窗体除外),以便我可以链接它们并在另一个模块中使用它们。
我猜他们只是显示,并没有真正读入内存或任何(初始化!?)。
有两种方法可以解决这个问题。
方法1
将您的选项button对象声明为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
variables并创build“选项”button的单击事件,然后在该单击事件中设置Boolean
variables的值。 要在运行时创build选项button的单击事件,请参阅本示例
然后,您可以检查Sub Fill()
的Boolean
variables的值并相应地执行。