VBA中的长度检查为null

时间:2011-01-07 14:05:05

标签: vb.net string-length

我有一些代码用于检查文本框中值的长度,如果任何框没有内容,则字符串的长度为0(或null)。这是代码:

If (Len(Form_MainScreen.Ctl48.Value) Or Len(Form_MainScreen.Ctl49.Value) Or _
    Len(Form_MainScreen.Ctl50.Value) Or Len(Form_MainScreen.Ctl51.Value) Or _
    Len(Form_MainScreen.Ctl52.Value) Or Len(Form_MainScreen.Ctl53.Value) Or _
    Len(Form_MainScreen.Ctl54.Value) = 0) Then
              Do X
Else
              Do Y
End If

当一个字符串为空时,长度检查变为“null”,整个语句也是如此。 但是如果长度检查都不为null,则if语句变为“1”,然后再次执行Do X过程。

知道我能做什么吗?

谢谢, 添

2 个答案:

答案 0 :(得分:3)

你的代码片段对我来说没有多大意义,但是如果你正在使用vb.net并且你希望“X”在任何值为null或0长度时执行,那么你可以执行以下操作: / p>

If (String.IsNullOrEmpty(Form_MainScreen.Ctl48.Value) OrElse String.IsNullOrEmpty() OrElse _
    String.IsNullOrEmpty(Form_MainScreen.Ctl50.Value) OrElse String.IsNullOrEmpty(Form_MainScreen.Ctl51.Value) OrElse _
    String.IsNullOrEmpty(Form_MainScreen.Ctl52.Value) OrElse String.IsNullOrEmpty(Form_MainScreen.Ctl53.Value) OrElse _
    String.IsNullOrEmpty(Form_MainScreen.Ctl54.Value)) Then
    X()
Else
    Y()
End If 

使用String.IsNullOrEmpty是一个内置函数,可以毫无例外地处理这两个条件。使用OrElse条件将允许稍微更快的处理,因为它将在收到有效匹配后停止执行条件表达式。简单地使用Or需要评估所有条件表达式,即使它不是必需的。

答案 1 :(得分:1)

If (Len(Form_MainScreen.Ctl48.Value)=0 Or Len(Form_MainScreen.Ctl49.Value)=0 Or _
    Len(Form_MainScreen.Ctl50.Value)=0 Or Len(Form_MainScreen.Ctl51.Value)=0 Or _
    Len(Form_MainScreen.Ctl52.Value)=0 Or Len(Form_MainScreen.Ctl53.Value)=0 Or _
    Len(Form_MainScreen.Ctl54.Value) = 0) Then
    Do X
Else
    Do Y
End If