我正在尝试在Excel中创建一个简单的用户表单,以输入工作人员执行某项任务的日期。我有一个电子表格,列出了B栏下的所有员工,我列出了第5行的所有任务。
我已经创建了一个带有几个组合框的表单,因此我可以选择工作人员并选择任务。还有一个文本框,我将在其中输入日期。
我需要的是当我点击“提交”按钮时,它会将文本框中包含的日期输入到组合框中2个选项定义的单元格中。如果其中任何一个组合框未选中任何内容,则单击该按钮时不应将任何数据输入电子表格。
Dim nameRow As Integer
Dim job1col As Integer
nameRow = cbxStaffName.ListIndex + 6
job1col = cbxJob1.ListIndex + 3
ThisWorkbook.Sheets("Job Rotation").Cells(nameRow, job1col).Value = tbxDate.Value
包含人员名称列表的组合框称为cbxStaffName
。包含作业的组合框是cbxJob1
。包含我要输入的日期的文本框名为tbxDate
。
组合框中已填充了电子表格中存在的数据,只需在左侧列出名称,在顶部列出作业。如果例如Jim
完成了作业welding
,我想从一个组合框中选择Jim
,请从另一个框中选择welding
,当我点击该按钮时,日期就会消失进入电子表格中的那个单元格。
答案 0 :(得分:0)
您只需要一个If
语句来检查两个复选框是否都有值:
If cbxStaffName.Value <> vbNullString And cbxJob1.Value <> vbNullString Then
'write into cell
Else
MsgBox "Please select staff and job first"
End If
或者,如果未选择任何内容,您可以查看ListIndex
应该是-1
。
请注意,我建议使用always use Long
instead of Integer
,尤其是在处理行计数时。 Excel的行数多于Integer
可以处理的行数。