在子例程中引用复选框 name/value
Reference checkbox name/value in a subroutine
有没有办法从用户表单传递复选框值?当复选框位于工作表上时,我已经看到它完成了,但是当它来自我的用户表单时,我无法让它工作。
我有几个重复的 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 传递给它。
下面的代码示例演示了如何将用户窗体上的复选框控件传递给另一个过程,获取复选框的值和标题,并对它们执行某些操作。
请注意,我选择传递复选框,而不是值和标题作为两个参数,因为这将减少您需要键入的代码量。
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
有没有办法从用户表单传递复选框值?当复选框位于工作表上时,我已经看到它完成了,但是当它来自我的用户表单时,我无法让它工作。
我有几个重复的 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 传递给它。
下面的代码示例演示了如何将用户窗体上的复选框控件传递给另一个过程,获取复选框的值和标题,并对它们执行某些操作。
请注意,我选择传递复选框,而不是值和标题作为两个参数,因为这将减少您需要键入的代码量。
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