有没有办法从用户表单中传递复选框值?当工作表上有复选框时,我已经看到它已完成,但是当我的用户表单出现时,我还无法让它工作。
我有几个重复的if语句,它们之间的唯一区别是复选框的名称。我确定有一个简单的解决方案,我还没有找到。任何帮助表示赞赏。
编辑:包含代码
If LockboxCheckBox.Value = True Then
If IsEmpty(wsInput.Cells(emptyRow, productCol)) Then
wsInput.Cells(emptyRow, productCol).Value = LockboxCheckBox.Caption
Else: wsInput.Cells(emptyRow, productCol).Value = wsInput.Cells(emptyRow, productCol).Value & ", " & LockboxCheckBox.Caption
End If
End If
我想把它变成一个小子程序,当我调用它时需要传递checkbox.value以及checkbox.caption。
答案 0 :(得分:0)
以下代码示例演示如何将UserForm上的Checkbox控件传递给另一个过程,获取复选框的值和标题,并对它们执行某些操作。
请注意,我选择将复选框而不是值和标题作为两个参数传递,因为这会减少您需要输入的代码量。
Private Sub btnOK_Click()
Dim chk As MSForms.CheckBox
Set chk = Me.CheckBox1
ProcessCheckBox chk
ProcessCheckBox Me.CheckBox2
End Sub
Sub ProcessCheckBox(chk As MSForms.CheckBox)
Dim chkVal As Boolean
Dim chkCap As String
chkVal = chk.value
chkCap = chk.Caption
If chkVal = True Then
Debug.Print chkCap & " is true"
Else
Debug.Print chkCap & " is false"
End If
End Sub