2016-04-15 10 views
1

で作業していない:Application.Eval()このコード行は評価しません表現

strHolder = "If(StrComp(Left("Campaign", 5), "IMS :") = 0" 
myVar = Application.Eval(strHolder) 

これはエラーIです:

If(StrComp(Left("Campaign", 5), "IMS :") = 0 

を、私はこのようにそれを使用しています「Mの受信:

Run-time error '2425': 

The expression you entered has a function name that Microsoft Access can't find. 

私はApplication.EvalIfStrComp、またはLeft

ない、ここで何をすべきかわからいずれかを読み取ることができない、と私はEval法上くらいの綿密な情報を見つけることができないことを推測しています。

答えて

3

このコード行は評価しません。

If(StrComp(Left("Campaign", 5), "IMS :") = 0 

そして、それはThenせずに起因するアンバランス括弧にしてIfのいずれかをコンパイルしません。

あなたはこのイミディエイトウィンドウの例のような何かをしたい場合も、二重、その後... ...

strHolder = "If(StrComp(Left("Campaign", 5), "IMS :") = 0" 

...

? StrComp(Left("Campaign", 5), "IMS :") = 0 
False 

このラインでコンパイルエラーがあるはずです​​に送信する文字列内に"文字を入力してください。

strHolder = "StrComp(Left(""Campaign"", 5), ""IMS :"") = 0" 
? strHolder 
StrComp(Left("Campaign", 5), "IMS :") = 0 
myVar = Application.Eval(strHolder) 
? myVar 
0 
? CBool(myVar) 
False 
+0

応答いただきありがとうございます。だから私はこれでしばらく遊んだことがある。いくつかの構文エラーについては正しくありましたが、すべてではありません。 1.引用符を二重にするとうまくいきませんでした。なぜか分かりませんが、結局は一重引用符が必要でした。 2. if文を削除し、bool変数を評価することが成功への鍵でした(あなたがここで行ったこととほとんど同じです)。文字列からIF文全体を正しく評価する構文はありますか? –

+0

わかりません。 'Eval()'を評価したい 'If'文全体の例がありますか? – HansUp

+0

'If(StrComp(Left(" Campaign "、5)、" IMS: ")Return someValue'これを構文解析する方法がわからない –