Excel vba用户窗体输入错误检查
我在Excel 2010中有一个用户表单。有8个文本框。提交数据时不需要全部填写。如果所有8个文本框均为空,则会显示一个msgbox。下面是我这样做的代码。有没有更优雅的编码方式?多谢各位Excel vba用户窗体输入错误检查,excel,vba,Excel,Vba,我在Excel 2010中有一个用户表单。有8个文本框。提交数据时不需要全部填写。如果所有8个文本框均为空,则会显示一个msgbox。下面是我这样做的代码。有没有更优雅的编码方式?多谢各位 Dim A Dim B Dim C Dim D Dim E Dim F Dim G Dim H If TextBox1.Text = "" Then A = 0 Else A = 1 End If If TextBox2.Text = "" Then B = 0 Else
Dim A
Dim B
Dim C
Dim D
Dim E
Dim F
Dim G
Dim H
If TextBox1.Text = "" Then
A = 0
Else
A = 1
End If
If TextBox2.Text = "" Then
B = 0
Else
B = 1
End If
If TextBox3.Text = "" Then
C = 0
Else
C = 1
End If
If TextBox4.Text = "" Then
D = 0
Else
D = 1
End If
If TextBox5.Text = "" Then
E = 0
Else
E = 1
End If
If TextBox6.Text = "" Then
F = 0
Else
F = 1
End If
If TextBox7.Text = "" Then
G = 0
Else
G = 1
End If
If TextBox8.Text = "" Then
H = 0
Else
H = 1
End If
If A + B + C + D + E + F + G + H = 0 Then
MsgBox " Enter Some Data,", vbOKOnly + vbCritical, "ERROR!"
Else
'.....rest of code.....
我会做类似的事情
Dim cCont As Control
Dim sEntries As String
' Change UserForm1 to the actual name of the userform
For Each cCont In UserForm1.Controls
If TypeOf cCont Is msforms.TextBox Then _
sEntries = sEntries & CStr(cCont)
Next cCont
If Trim(sEntries) = vbNullString Then _
MsgBox vbTab & "Enter Some Data!", vbOKOnly + vbCritical, "ERROR!"
我希望这有帮助 相反,如果A+B+C+D+E+F+G+H=0,则此行
可以直接使用TextBox
值:If TextBox1.Text&TextBox2.Text&……&TextBox8.Text=”“然后
Private Sub CommandButton1_Click()
If Not HasSomeInput() Then MsgBox "Enter Some Data,", vbOKOnly Or vbCritical, "ERROR!"
End Sub
Private Function HasSomeInput() As Boolean
Dim c As MSForms.Control
Dim t As MSForms.TextBox
For Each c In Me.Controls
If TypeOf c Is MSForms.TextBox Then
Set t = c
If Len(t.Text) > 0 Then
HasSomeInput = True
Exit Function
End If
End If
Next
End Function