2016-07-20 12 views
0

VBAでは、ForIfのステートメントを1行で入力することは可能ですか?私が書く場合Excel VBA: "For"と "If"ステートメントを1行で入力しますか?

For i = 0 To n: If a = i Then a = b 
Next i 

::私が得ることができるもの 最も近いがこれです

For i = 0 To n: If a = i Then a = b: Next i 

私は "についてはなし" エラーが発生します。

+2

あなたは、単一の行でそれが必要なのはなぜ? – RGA

+0

読書用です。簡単で簡単なコードパーツでは、すべてを自分の行に置くのではなく、1行でコードを読み込んで「把握」する方が簡単です。 – Klaidonis

+1

答えはありませんが、VBAのループ構造( 'For ... Next'、' Do ... Loop'、 'While ... Wend'、' For Each)の* all *と同じ動作をします。 ..Next')。コンパイラが行番号を処理し、ブレークポイントをデバッグする方法のいくつかの組み合わせと関係していることがわかります。 – Comintern

答えて

3

IfではなくIIfとすることができます。

このコードは、エラーをスローしません。

For i = 0 To n: IIf a = i, a = b, False: Next i 
+0

唯一の欠点はTrueまたはFalse句を省略できないことです。 TrueまたはFalseの部分に複数のステートメントを含めることは可能ですか? – Klaidonis

+1

私はそうは思わない... –

+0

IIf句内のa = bは、trueまたはfalseを返す比較であり、aの値にbを与えるassigment文ではありません。 –

0

利用select caseの代わりに、もし...

For i = 0 To n: select case a = i: case true: a = b: end select: Next i

関連する問題