1

私はこれを理解することはできません。

私たちは主にフランス語版の Excel を使用しています (カナダのフランス語圏に住んでいるため)。VBA コードのどこかで、セルの数式を直接設定しました。通常、数式は英語で記述しなければならず、Excel が翻訳を行います (VBA で英語以外の言語で数式を記述すると、私の知る限り、エラーが発生します)。ただし、この方程式の半分だけが翻訳されているため、問題が発生していると思います (別のセルに正しい数式を書き込むと、異なる結果が得られ、おそらく正しい結果が得られます)。

range("J2").Formula = "=round(IF(F2="",0,F2),2)-round(IF(G2="",0,G2),2)"

セルでは次のように変換されます。

=ARRONDI(SI(F2=",0,F2),2)-round(IF(G2=",0,G2),2)

ご覧のとおり、右側の部分は "ARRONDI(SI(..") と表示されるはずですが、そのようには読み取れません。スペースを追加したり、マイナス記号を完全に削除したりしました。何も機能せず、常に半分翻訳されています。 ?

4

1 に答える 1

3

VBA では、次のように引用符をエスケープする必要があります。

range("J2").Formula = "=round(IF(F2="""",0,F2),2)-round(IF(G2="""",0,G2),2)"

これは、"文字が文字列の開始/終了として VBA で使用されるためです。したがって、それを文字列に含めたくない場合は、続けて 2 回入力する必要があります。

于 2012-08-10T14:59:54.717 に答える