2016-04-24 14 views
0

У меня есть пользовательская форма с несколькими полями и текстовыми полями, которые я использую для ввода данных на рабочий лист. То, что я искал, - это код, который будет проверять все эти поля перед сохранением данных на листе, поэтому, если один из них пуст, он выведет сообщение и не сохранит данные.Проверка нескольких текстовых полей/comboboxes для ввода

Я использую функцию, которая проверяет каждый отдельно, но все равно сохраняет данные на листе, если остальные пустые.

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

ответ

0

Создайте массив объектов управления флажком, а затем повторите его, проверяя каждый объект по очереди.

+0

Это вроде того, что я собрал, и продолжает говорить мне, что это не пусто, я (1) = TextBox1 Set Test (2) = TextBox2 Set Test (3) = TextBox3 Set Test (4) = «Test Test» (3) = TextBox3 Set Test (1) = TextBox1 Set Test (4) = ComboBox1 Set Test (5) = ComboBox2 Set Test (6) = ComboBox3 Если IsEmpty (Test) Тогда MsgBox "Пустая" Else MsgBox "его не" End If – 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 

быть размещены на панели UserForm кода

+0

что творил чудеса! Спасибо вам за помощь. – Higgs

+0

Рад помочь. Если бы я выполнил ваш вопрос, пожалуйста, отметьте мой ответ как принятый. спасибо – user3598756