2011-11-28 22 views
24

我有一個if聲明與多個條件。我無法在單個窗口視圖中看到它們。有沒有辦法在不同的線路上將它們分開,還是必須全部寫入一行?如果聲明有多個行

+0

我認爲我必須是唯一一個在一行甚至很多頁面上使用它的人,我只是覺得很難跟隨破壞到單獨的行 – DevilWAH

+0

沒關係^ _^ – Yokhen

回答

42

的VBA續行字符是一個下劃線_

if (_ 
    (something) _ 
    or (somethingelse) _ 
) 
+0

謝謝,它的工作! – Yokhen

1

打破他們與低於_?

Microsoft Library

從上面的鏈接

If ActiveSheet.ChartObjects(1).Chart.ChartTitle = _ 
     ActiveSheet.Range("a2").Value Then 
    MsgBox "They are equal." 
End If 
0

即時通訊相當肯定,你可以使用下劃線_分手線。

+0

試過了......但是沒有沒有工作。 然而,其中一個答案解決了。 – Yokhen

+0

從內存中,它可以有點挑剔,你可以在哪裏分手。 – smitec

+0

@Yokhen,那麼請關閉你的問題。它已經很忙了! – brettdj

11

您可以使用續行字符_

這些都是一樣的:

If Something Or SomethingElse Or AnotherThing Then 

If Something Or SomethingElse _ 
    Or AnotherThing Then 

If Something Or _ 
    SomethingElse Or _ 
    AnotherThing Then 
2

像上面,您可以使用下劃線在一個「IF」語句中分解多組條件。

如果條件太多,我覺得它很難讀,我用BOOLEANS來表示條件。似乎有更多的代碼,但我覺得它更易於閱讀。

如果我有這樣一個場景,我需要做到以下幾點:

IF (X = something1) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) THEN 
END IF 

我可以這樣做:

IF _ 
    (X = something1) _ 
    OR (X = something2) _ 
    OR (X = something3) _ 
    OR (X = something4) _ 
    OR (X = something5) _ 
    OR (X = something6) _ 
    OR (X = something7) _ 
    OR (X = something8) _ 
THEN 
END IF 

...我也可以做到這一點...

blnCondition1 = (X = something1) 
blnCondition2 = (X = something2) 
blnCondition3 = (X = something3) 
blnCondition4 = (X = something4) 
blnCondition5 = (X = something5) 
blnCondition6 = (X = something6) 
blnCondition7 = (X = something7) 
blnCondition8 = (X = something8) 

IF blnCondition1 OR blnCondition2 OR blnCondition3 OR blnCondition4 OR blnCondition5 OR blnCondition6 OR blnCondition7 OR blnCondition8 THEN 
END IF 

當然,示例BOOLEAN變量是定義的,而不是像blnCondition1這樣的名稱,我將使用有意義的名稱。

同樣,這只是我的偏好。