2011-01-07 62 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