2017-06-09 10 views
1

If Then ElseIf関数の50行以上のVBAコードを持っています。マクロを実行すると、1つの「if」条件を満たすことになります。データが50番目のElseif条件を満たす場合、マクロは49の条件を満たす場合に通過します。私は、条件を満たす1つの基本的価値があることを知っています。私は条件を満たす価値を見つけることができるので、もし条件が満たされていれば、それに直接ジャンプできますか?すべてのヘルプははるかに私がA = 13を知っているので、私は直接条件ならば最初の2を経由せずにExcel VBA私たちがもっと多くの機能を持っている場合のインデックスの使い方

Elseif A=13 and B=35 and C=60 then 

にジャンプすることができます。ここ

If A=10 and B=39 then 
Do Something.... 
Elseif A=11 and B=30 and C=56 then 
Do Something.... 
Elseif A=13 and B=35 and C=60 then 
Do Something.... 
... 
etc 

をいただければ幸いですか!

+1

200行の 'If-Then'を持っていても、複雑な条件がない限り、' If Then'を評価するコードの実行は分割された秒で行われます。コードを表示できますか?たぶんそれは最適化することができますか? –

+0

A = 13であることが分かっている場合は、なぜすべてのIfが必要ですか? – jivko

+0

あなたはきれいになるのSelect Caseを使用することができますが、= 13、計算上同等 – Kelaref

答えて

0

あなたの質問に - 49. ElseIfの条件 - NOを優先することができますか?

しかし、デバッグで速くしたい場合は、1または2の数字で入力することができます。

Public Sub TestMe() 

    Dim a As Long 
    a = 5 

    If a < 6 Then 
     Debug.Print "The most popular" 
    ElseIf a = 5 Then 
     Debug.Print "The 2. most popular" 
    ElseIf a > 2 Then 
     Debug.Print "The 3. most popular" 
    End If 

End Sub 

コメントで述べたように、評価における非最適化された機能がある場合を除き、あなたが約50の小さな評価を持っているという事実は、(あなたのコードを遅くないだろうか、そこにデータベースにアクセスしている:このように )。

+0

ケース選択関数を使用して3つの条件を使用することはできますか? – Manish

+1

@Manish - 'select case true:case a <6:end select' – Vityata

関連する問題