2011-01-07 79 views
1

我有一些代码用于检查文本框中值的长度,如果任何一个框中没有内容,则字符串的长度为0(或为空)。以下是代码:在VBA中使用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 

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

任何想法我可以做什么?

感谢, 添

+0

您是否使用VBA或VB.NET,请澄清! – Bobby 2011-01-07 14:12:29

回答

3

您的代码段没有多大意义,我,但如果你用vb.net和你想要的“X”来执行,如果任何一个值,为null或0长,那么你可以做到以下几点:

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
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