1

Windows 7 で実行されている Excel 2010 x64 でテストしている C# COM (オートメーション) アドインを作成しました。これは、多数のユーザー定義式を定義します。最初にリテラルで呼び出され、次にセル参照で呼び出される、引数として 2 つの文字列を持つ UDF の例を見てみましょう。

=MyFunction("A","B")
=MyFunction(A1,B1)

地域設定 = 英語の場合、これらは両方とも機能します。

地域設定をフランス語に設定してブックを再度開くと、Excel の数式が次のように変更されています。

=MyFunction("A";"B")
=MyFunction(A1;B1)

最初のもの (リテラル付き) は引き続き機能します。2 つ目は機能しませ= 返されるだけ#VALUE!で、マネージ UDF コードは呼び出されません (Visual Studio 2010 でのデバッグ)。

どうしてこれなの?

4

2 に答える 2

0

UDF がさまざまなロケールで正しく動作するように、en-US カルチャを明示的に設定する必要があります。

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

アドインの最初のどこかに

于 2016-01-15T10:46:13.363 に答える