2016-10-20 3 views
0

多くのコンピュータで、VBAはいわゆるタイプミスマッチエラー、エラー13を無視するようになったばかりです。VBAが型の不一致エラーを無視するように設定されていますか?

しかし、今はタイプミスマッチを無視しないPCが出回っていますエラー。だから、私の質問は:

コンピュータがタイプミスマッチエラーを無視しないようにするための設定がありますか?

一般に無視されるようなタイプミスマッチエラーの例ですが、この1台のPCではそうではありません。

?msgbox (1,,22) 
?Application.Version = 12# 

この上の任意の洞察力に感謝 - を含む、型の不一致を持っているが、まだコンパイルし、ほとんどのシステム上で実行されるコードを見つけるための最善の方法は何ですか?

+1

実際には、「型の不一致」というエラーが表示されるのですか、型の不一致エラーのようなものが表示されるだけですか? 'Msgbox'は整数を文字列にキャストする必要があります(MsgBoxを表示した後、'? 'は戻り値を表示します)、' Application.Version = 12 # 'はバージョンを12#と比較する必要があります(バージョンをdoubleにキャストするか、文字列に12#をキャストするかどちらも有効です)かを確認してTrueまたはFalseを返します。 '?'によって。 – YowE3K

+0

これらのステートメントの成否を確認しているOfficeのバージョンは? – jsheeran

+0

こんにちは... Application.Versionの例は実際のものです。どちらのPCもOffice 2010でWin 10を実行しています.VBAはMS Wordで動作していました。私のPCはApplication.Versionの例でFalseを返し、他のPCは実際にエラー13を投げ、タイプミスの場合 – SlowLearner

答えて

0

誰かがこの問題を抱えている場合。私はタイプミスマッチを無視する方法/設定を見つけることができませんでした - 私はある種のOption EnforceTypes厳密にあるかもしれないと思っていましたが、明らかにそうではありませんでした。

最後に、問題の変数を適切な型に明示的にキャストする必要がありました。私はこの1つの特定のPCがエラーを投げた理由は分かりませんが、それはどうでしたか?

修正されました。

+0

* VBAはいわゆるタイプミスマッチエラー、エラー13を無視します。暗黙的な型変換のために、どのコードもどちらのコンピュータでもエラーにならないはずですので、VBAは "エラーが発生していないコンピュータではエラーを無視する必要があります。問題はPC上の他の場所にあります。残念なことに、問題をすぐに解決することができてうれしいですしかし、:) –

+1

私はあなたのポイント@DavidZemensを取るが、* VBAのIDEは、エラー13を吐き出し、それはタイプの不一致と呼ばれた、それは暗黙の変換がない場合、エラーが発生すると私の推測だろう。何らかの理由で...おそらくimpliciがなかったのでt変換(しかし、おそらく他のもの) - 残念ながら、それは謎のままです。ありがとう、私も嬉しいです。修正されたコードの明示的な型キャストは、 '技術的に間違っているためエラーではありません'エラー13 ;-)になりません – SlowLearner

関連する問題