【发布时间】:2019-12-10 02:29:55
【问题描述】:
我创建了一个用户表单,它根据多个工作表上的单元格值填充了复选框。我根据单元格值命名复选框(它们都不相同),但单元格的数量会随着时间而变化,所以我希望有一个代码填充用户表单,而不是手动放入每个复选框。我希望能够如果单击其复选框但我的代码不起作用,则调用特定的单元格值信息。我想我需要创建一个每次都会更改的动态复选框变量。除了最后一个复选框,我目前无法调用任何复选框。
Public chkBox As MSForms.CheckBox
Public Sub UserForm_Initialize()
MemNumCombo.Clear
Dim o As Long
Dim chkL As Double
Dim chkT As Double
Dim chkH As Double
Dim chkW As Double
chkL = 125
chkT = 5
chkH = 15
chkW = 80
o = 2
Do Until Worksheets("Operations").Cells(o, 1).Value = "Division:"
Set chkBox = Me.Controls.Add("Forms.CheckBox.1", Worksheets("Operations").Cells(o, 1).Value & Worksheets("Operations").Cells(o, 3).Value & "Check")
chkBox.Caption = Worksheets("Operations").Cells(o, 1).Value & " " & Worksheets("Operations").Cells(o, 3).Value
chkBox.Left = chkL
chkBox.Top = chkT + (o - 1) * 20
chkBox.Height = chkH
chkBox.Width = chkW
o = o + 1
Loop
'...
End Sub
我知道当代码运行时 chkBox 的名称是正确的,但我以后不能通过它的名称调用 chkBox。代码运行完成后,我只能调用最后一个 chkBox。
【问题讨论】:
标签: excel vba controls userform