我目前正在创建报告工具我在将详细信息从用户表单导出到我的数据库(Sheet1)时遇到问题。
方案: 如果用户在用户表单中选中了多个复选框,它将如何将数据从多个复选框传输到1行" G2"没有重叠?我使用命令按钮将数据传输到空单元格
示例用户窗体:
@ Mike
答案 0 :(得分:0)
可能有用的东西是:
Private Sub CommandButton4_Click()
RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.count
With Worksheets("Sheet1").Range("A1")
If CheckBox1.Value = True Then
.Offset(RowCount, 6).Value = .Offset(RowCount, 6).Value & vbCrLf & "Unable to remove footer"
Else:
.Offset(RowCount, 6).Value = ""
End If
If CheckBox2.Value = True Then
.Offset(RowCount, 6).Value = .Offset(RowCount, 6).Value & vbCrLf & "Unable to use PMSectionHead as First Level header/section"
Else:
.Offset(RowCount, 6).Value = ""
End If
End With
End Sub
我将它添加到单元格中已有的值,并在添加的每个新值之前添加换行符。然后,您可能必须为每个If
添加checkbox
,因为您手动添加字符串。
您需要检查每一个以查看是否选中了多个checkbox
。如果你在If ... ElseIf
语句中有它们,它将在第一个真实语句之后停止,而不是检查所有其余语句。
修改强>
Private Sub CommandButton4_Click()
Dim RowCounter
RowCounter = 0
RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.count
With Worksheets("Sheet1").Range("A1")
If CheckBox1.Value = True Then
.Offset(RowCount + RowCounter, 6).Value = .Offset(RowCount + RowCounter, 6).Value & vbCrLf & "Unable to remove footer"
RowCounter = RowCounter + 1
Else:
.Offset(RowCount, 6).Value = ""
End If
If CheckBox2.Value = True Then
.Offset(RowCount + RowCounter, 6).Value = .Offset(RowCount + RowCounter, 6).Value & vbCrLf & "Unable to use PMSectionHead as First Level header/section"
RowCounter = RowCounter + 1
Else:
.Offset(RowCount, 6).Value = ""
End If
End With
End Sub
我在sub上添加了一个计数器,如果检查了任何一个复选框,它将计数,然后从0行开始往下走多行,检查1个复选框。不完全确定这是你想要的,但我认为它对你有用。