2016-04-24 56 views
0

我有一個用戶窗體包含多個組合框和文本框,用於向工作表中輸入數據。我一直在尋找的是在將數據保存到工作表前檢查所有這些框的代碼,因此如果其中一個爲空,它將彈出一條消息並且不保存數據。檢查多個文本框/組合框的輸入

我一直在使用一個函數來逐個檢查每一個函數,但如果其他函數是空白的,它仍然會將數據保存到工作表中。

Public Function CheckEmpty(text_box As Object) As Boolean 
CheckEmpty = (Len(Trim(text_box.Value)) > 0) 
End Function 

回答

0

創建一個複選框控件對象的數組,然後遍歷它,依次檢查每個對象。

+0

這是什麼樣的我放在一起,它總是告訴我,這是不是空的,我新的所有這一切如此容忍我:昏暗測試(1至10)作爲變 集試驗(1)= TextBox1中 集試驗(2)= TextBox2中 集試驗(3)= TextBox3 集試驗(4)= ComboBox1 Set Test(5)= ComboBox2 Set Test(6)= ComboBox3 如果爲IsEmpty(測試)然後 MSGBOX「其空」 否則 MSGBOX「它不是」 結束如果 – Higgs

1

你可能想嘗試類似如下

Private Sub CommandButton1_Click() '<== change "CommandButton1" with the actual 'closing' button name 
Dim ctrl As Control 
Dim msg As String 

With Me 
    For Each ctrl In .Controls 

     Select Case TypeName(ctrl) 

      Case "ComboBox" 
       If ctrl.ListIndex = -1 Then msg = msg & vbCrLf & "ComboBox '" & ctrl.name & "' with no value selected" 
      Case "TextBox" 
       If ctrl.text = "" Then msg = msg & vbCrLf & "TextBox '" & ctrl.name & "' with no value selected" 
      Case Else 

     End Select 

    Next ctrl 

    If msg = "" Then 
     .Hide ' hide the userform only if no empty textboxes and/or comboboxes 
    Else 
     MsgBox msg, vbExclamation + vbInformation 
    End If 
End With 

End Sub 

被放置在用戶窗體代碼窗格

+0

這創造了奇蹟!感謝您的幫助。 – Higgs

+0

很高興能有所幫助。如果我已經完成了您的問題,請將我的答案標記爲已接受。謝謝 – user3598756