【发布时间】:2021-05-17 20:23:50
【问题描述】:
我尝试了很多解决方案,但都没有成功,现在需要您的帮助。为了便于理解,我已经缩减了完整的代码。
我有一个带有树形固定选项按钮的表单,属于 Group1。将 OptionButton2 命名为 Optionbutton4。我想在 Group1 中创建一个名为 OptionButton1 的动态创建选项按钮。然后选择其中一个按钮,值应写入 i 个单元格。 OptionButton2 到 OptionButton4 工作正常,但不是代码创建的按钮。有超级大脑的人,想帮助我吗? (在最终代码中,我将创建一个循环来创建很多按钮)
Option Explicit
Dim opSel As String
Private Sub UserForm_initialize()
Dim OptionButton1 As Control
Set OptionButton1 = Controls.Add("Forms.OptionButton.1", "OptionButton1", True)
With OptionButton1
.Name = "OptionButton1"
.Caption = "OptionButton1"
.GroupName = "Group1"
.Value = 0
.Top = 5
.Left = 10
End With
End Sub
Private Sub OptionButton1_Click()
opSel = OptionButton1.GroupName & " " & OptionButton1.Name
Debug.Print "Selected button: " & opSel
ThisWorkbook.Sheets("Blad1").Cells(1, 1).Value = "TEST-Button1"
End Sub
Private Sub OptionButton2_Click()
opSel = OptionButton2.GroupName & " " & OptionButton2.Name
Debug.Print "Selected button: " & opSel
ThisWorkbook.Sheets("Blad1").Cells(2, 1).Value = "TEST-Button2"
End Sub
Private Sub OptionButton3_Click()
opSel = OptionButton3.GroupName & " " & OptionButton3.Name
Debug.Print "Selected button: " & opSel
ThisWorkbook.Sheets("Blad1").Cells(3, 1).Value = "TEST-Button3"
End Sub
Private Sub OptionButton4_Click()
opSel = OptionButton4.GroupName & " " & OptionButton4.Name
Debug.Print "Selected button: " & opSel
ThisWorkbook.Sheets("Blad1").Cells(4, 1).Value = "TEST-Button4"
End Sub
'Private Sub CommandButton1_Click()
'ThisWorkbook.Sheets("Blad1").Columns("A:A").Clear
'End Sub
【问题讨论】:
-
动态添加控件时,最灵活的方法是使用“控件数组”——这样您就不必为添加的每个控件编写处理程序。例如:siddharthrout.com/index.php/2018/01/15/vba-control-arrays
-
Thanx @Tim,你的回答给了我一个提示,现在它就像发光一样工作。
标签: excel vba forms radio-button