2017-02-24 14 views
1

私は、ユーザーが設定した一連の命令を解釈する必要があるアプリケーションを構築しており、実行時まではわかりません。xより大きいがxより小さい評価VBA

ように、私は、Evaluate関数を使用することによって、これを達成しています。一つは期待通り

Evaluate("5>4") 

、trueを返します。

5は4より大きいが、10未満

は、私はもちろん、変数と数値を代入されます。私の質問は、私は次のステートメントを評価しない方法です。

文字列を2つの部分の配列に分割して個別にテストすることができますが、テストに1つの引数を渡す方法が必要です。

+0

のようなExcelのアドレスにアクセスすることはできません?数式を評価しますか'Evaluate( "10> 5> 4") ' – gizlmo

+0

Evaluate(" 10> 10> 4 ")もTrueを返すので動作しません –

+0

and演算子を使用できない理由があると確信しています。それが何であるか尋ねることはできますか? – User632716

答えて

2

Application.Evaluateはそう

AND(5>A4,5<10)または(5>A4)*(5<10)(0または1の結果)もう一つの選択肢はScriptControl Evalかもしれないが、それは多分、このようEvaluate

With CreateObject("ScriptControl") 
    .Language = "VBScript"    ' either VBScript or JScript 
    Debug.Print .Eval("5>4 and 5<10") 
End With 
+0

Amazing。 SCについて知りませんでした –

関連する問題