如果勾选了复选框,是否有办法 select 文本框输入? VBA Excel

Is there a way to select a TextBox input if a checkbox is ticked? VBA Excel

正如您在下图中看到的,我有几个代表措施的复选框,最后两个应该允许额外的措施。前面的文本框允许用户指定其度量的名称。

我能够使用以下代码将勾选复选框的名称(标题)成功发送到列表框:

Dim ctrl As Control

For Each ctrl In Me.Controls
    If TypeName(ctrl) = "CheckBox" Then
        If ctrl.Value = True Then
            ListBox1.AddItem ctrl.Caption
        End If
    End If
Next ctrl

但是,如果用户选择“其他措施”复选框,我希望将他们在文本框中输入的内容添加到列表框中,而不是复选框标题。

有什么办法可以做到吗?

所以我尝试按照 SJR 的建议使用更多 if 语句并且它奏效了。

Dim ctrl As Control

For Each ctrl In Me.Controls
    If TypeName(ctrl) = "CheckBox" Then
        If ctrl.Value = True Then
            If ctrl.Caption = "Additional Metric 1 (Specify Metric)" Then
                ListBox1.AddItem TextBox3.Value
            ElseIf TypeName(ctrl) = "CheckBox" Then
                If ctrl.Value = True Then
                    If ctrl.Caption = "Additional Metric 2 (Specify Metric)" Then
                        ListBox1.AddItem TextBox4.Value
        Else
            ListBox1.AddItem ctrl.Caption
                    End If
                End If
            End If
        End If
    End If
Next ctrl

有什么办法可以简化这个吗? :)

为了保持代码简单,您可能需要使用 Tags 而不是 Captions

Private Sub CommandButton1_Click()
    Dim ctl As Control
    For Each ctl In Me.Controls
        If TypeName(ctl) = "CheckBox" Then
            If ctl.Value And ctl.Tag <> "" Then
                ListBox1.AddItem ctl.Tag
            End If
        End If
    Next ctl
End Sub

Private Sub TextBox1_Change()
    Me.CheckBox4.Tag = Me.TextBox1.Text
End Sub

Private Sub TextBox2_Change()
    Me.CheckBox5.Tag = Me.TextBox2.Text
End Sub

编辑: 添加条件 And ctl.Tag <> ""