首页 > 解决方案 > 获取用户窗体上复选框的状态

问题描述

我的用户表单上有许多复选框和文本框。我有这些分组,一个文本框有两个复选框。我需要弄清楚的是一种获取复选框状态和文本框内容的简短方法,以便我可以将其写入文本文件。

我需要写入文本的信息将是 25 个文本框中的任何一个:TextboxValue + (checkbox1 已选中?) 和/或 (checkbox2 已选中?) 等等...

现在我只有这个,但我总共设置了大约 25 个组,但不确定组是否是正确的方法。我希望我对你们所有人都有意义。谢谢

Dim ctrl As Control

For Each ctrl In Me.Controls

If TypeOf ctrl Is MSForms.CheckBox Then
  If ctrl.GroupName = "GroupA" Then
    If ctrl.Value = True Then
    MsgBox ctrl.Caption & ": " & Me.TextBox1.Text
    End If
 End If
End If

If TypeOf ctrl Is MSForms.CheckBox Then
  If ctrl.GroupName = "GroupB" Then
    If ctrl.Value = True Then
    MsgBox ctrl.Caption
    End If
 End If
End If
Next ctrl

标签: excelvba

解决方案


使用一致的命名模式,您可以这样做:

Dim i As Long, tb As Control, chkA As Control, chkB As Control

For i = 1 To 25
    Set tb = Me.Controls("Grp_" & i & "_TB")
    Set chkA = Me.Controls("Grp_" & i & "_CHKA")
    Set chkB = Me.Controls("Grp_" & i & "_CHKB")

    'work with tb, chkA, chkB

Next i

推荐阅读