组合框表单验证中的Excel VBA错误438

时间:2014-07-08 15:47:38

标签: excel excel-vba vba

我想验证MultiPage控件的第2页。 它有2个组合框,2个单选按钮和几个文本框。

基本上,所有字段都必须有值。

这是我正在使用的代码:

Private Sub validaPasso3()
Dim cCont As Control

For Each cCont In Me.MultiPage1.Pages(2).Controls
    If cCont.Value = vbNullString Then
        MsgBox "Error."
        Exit Sub
    End If 
Next
End Sub

但是这会返回错误:

Run-time error: ´438´ Object doesn't support this property or method.

在线:

If cCont.Value = vbNullString Then

我知道这是由第一个组合框引起的。

导致错误的原因是什么?

1 个答案:

答案 0 :(得分:2)

如果在组合框中未选择任何内容,则会返回Null而不是vbNullString。你可以使用这样的东西:

Private Sub validaPasso3()
Dim cCont As Control

For Each cCont In Me.MultiPage1.Pages(2).Controls
    If Typename(cCont) = "ComboBox" Then
        If IsNull(cCont.Value) Then 
            MsgBox "Error."
            Exit Sub
        End If
    ElseIf Typename(cCont) = "TextBox" Then
        If cCont.Value = vbNullString Then
            Msgbox "Error."
            Exit Sub
        End If
    ElseIf Typename(cCont) = "OptionButton" Then
        If cCont.Value = False Then
            MsgBox "Error."
            Exit Sub
        End If
    End If
Next
End Sub