VBA将列表空字段从userform添加到消息框

VBA将列表空字段从userform添加到消息框,vba,ms-word,msgbox,Vba,Ms Word,Msgbox,我创建了一个userform,它要求用户输入几个字符串或整数。我试图得到一个消息框出来,如果几个强制性框没有填写。我想列出空字段,但跳过已填写的字段。如果值是整数,但大多数输入是字符串,我知道如何执行for循环。我想我可以用dimc作为控件来做一些事情,我知道我的消息框的总体布局,但我被难倒了。请帮助我,这样我就不必用六个单独的消息框写六个单独的条件语句了 六个表单字段名为: 标书名称、提交日期、CBO合同类型、合同名称、合同编号和有效期 我心目中留言板的总体布局如下: MsgBox "You

我创建了一个userform,它要求用户输入几个字符串或整数。我试图得到一个消息框出来,如果几个强制性框没有填写。我想列出空字段,但跳过已填写的字段。如果值是整数,但大多数输入是字符串,我知道如何执行for循环。我想我可以用dimc作为控件来做一些事情,我知道我的消息框的总体布局,但我被难倒了。请帮助我,这样我就不必用六个单独的消息框写六个单独的条件语句了

六个表单字段名为: 标书名称、提交日期、CBO合同类型、合同名称、合同编号和有效期

我心目中留言板的总体布局如下:

MsgBox "You have left the following mandatory fields empty:" & vbCrLf & vbCrLf & "Proposal_Name" & vbNewLine & "Date_of_Submission" & Chr(10) & "cboContraact_type" & Chr(10) & "Contract_Neg_Name" & Chr(10) & "Validity_Period" 

因为您只关心6个字段,所以我不会继续遍历表单控件、确定控件类型、检查缺少的值等

下面是一个可能适用于您的命令按钮的OnClick:

Private Sub Command12_Click()


Dim sMissingValues As String
sMissingValues = ""

If Nz(Me!Proposal_Name, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Proposal_Name"
If Nz(Me!Date_of_Submission, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Date_of_Submission"
If Nz(Me!cboContraact_type, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "cboContraact_type"
If Nz(Me!Contract_Neg_Name, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Contract_Neg_Name"
If Nz(Me!Contract_Neg_Number, "") = "" Then sMissingValues = sMissingValues + vbCrLf     + "Contract_Neg_Number"
If Nz(Me!Validity_Period, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Validity_Period"

If sMissingValues <> "" Then
    MsgBox "You have left the following mandatory fields empty:" & vbCrLf & sMissingValues
End If


End Sub
Private子命令12_Click()
Dim SMISINGVALUES作为字符串
sMissingValues=“”
如果Nz(Me!提案名称“”),则sMissingValues=sMissingValues+vbCrLf+“提案名称”
如果新西兰(Me!提交日期,“”“”),则sMissingValues=sMissingValues+vbCrLf+“提交日期”
如果Nz(Me!cboContraact_type,“”“”),则sMissingValues=sMissingValues+vbCrLf+“cboContraact_type”
如果Nz(Me!Contract_Neg_Name,“”“”),则sMissingValues=sMissingValues+vbCrLf+“Contract_Neg_Name”
如果Nz(Me!合同编号“””),则sMissingValues=sMissingValues+vbCrLf+“合同编号”
如果Nz(Me!有效期,“”“”),则sMissingValues=sMissingValues+vbCrLf+“有效期”
如果sMissingValues“”则
MsgBox“您将以下必填字段留空:”&vbCrLf&sMissingValues
如果结束
端接头

谢谢,丹尼尔。我将它稍微修改为如果Len(Me.proposition_Name&vbNullString)=0,那么。。。。它工作得很好。再次感谢。