用户窗体复选框将文本发送到电子表格

Userform checkbox send text to spreadsheet

我正在尝试获取一个复选框 1,以便在勾选复选框时在下一个可用行中以及在命令按钮将用户表单提交到电子表格时在 O 列中填充短语 'Absent'。

下面的代码适用于我的 'submit' 命令按钮,它运行良好,没有任何问题。我如何合并 复选框请将 'absent' 添加到与当前添加的其他信息完全相同的行中?

此外,我希望复选框能够在提交表单后恢复到其 'unchecked' 状态。

非常感谢任何帮助。

命令按钮提交代码为:

Private Sub CommandButton1_Click()
Set ThisRow = Range("A" & Rows.Count).End(xlUp)
If ThisRow.Row = 1 Then
Me.TextBox1 = 1
Else
Me.TextBox1 = ThisRow.Row + 1   
End If

Me.TextBox2.Value = Now
Set ThisRow = ThisRow.Offset(1)
SaveData
End Sub

将数据保存到电子表格:

Private Sub SaveData()
Dim C As MSForms.Control
Dim varValue As Variant    'Must be variant to accept different types of data

For Each C In Me.Controls
    If C.Tag <> "" Then
        varValue = C.Value
        Select Case C.Tag
                 Case "A", "D", "H", "I", "J", "K", "L", "M", "N", "O"
                Worksheets("Data").Range(C.Tag & ThisRow.Row) = varValue


            Case "B", "C", "E"
                If IsDate(varValue) Then
                    Worksheets("Data").Range(C.Tag & ThisRow.Row) = CDate(varValue)
                End If

        End Select

初始化代码为:

Private Sub UserForm_Initialize()
Me.listDate.ListIndex = -1
listOwner.ListIndex = 0

Me.listOwner.Tag = "D"
Me.listDate.Tag = "E"

Me.listEmployee.Tag = "F

等等等等等等等等

将以下内容添加到保存数据

Case "O"
if c.value then
 worksheets("Data").range(c.tag & this.row)="Absent"
 c.value=false
end if

好的,您的意见很有帮助。我还需要在 'Initialise' 下声明它,我现在已经这样做了。问题解决了。