用户窗体复选框将文本发送到电子表格
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' 下声明它,我现在已经这样做了。问题解决了。
我正在尝试获取一个复选框 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' 下声明它,我现在已经这样做了。问题解决了。