5

それが機能している方法はかなり非論理的であるように見えるので、これは本当に私を悩ませています。

通貨記号を取得するためのコードを少し使用して、セルを通貨としてフォーマットするマクロがあります。

関連するコードは次のとおりです。

Dim sym As String
sym = reportConstants(ISOcode)
    'Just use the ISO code if there isn't a symbol available
    If sym = "" Then
    sym = ISOcode
    End If
With range(.Offset(0, 3), .Offset(3, 3))
.NumberFormat = sym & "#,##0;(" & sym & "#,##0)"
Debug.Print sym & "#,##0;(" & sym & "#,##0)"
End With

reportConstants文字列として定義された通貨記号を持つ辞書オブジェクトです。例reportConstants("USD") = "$":これは、マクロの前半で定義されています。

マクロが実行されると、ISOコードを取得し、対応する通貨記号でセルをフォーマットする必要があります。

あるインスタンスで実行すると、ISOコードは「USD」(つまり、symとして定義され"$"ます)ですが、それでもセルはポンド記号(£)でフォーマットされます。debug.printセル文字列をフォーマットすると、そのように表示さ$#,##0;($#,##0)れます。構文が正しい限り、セルにドル記号を使用する必要があります。ただし、代わりに£記号を使用します。(私は英国版のExcelを実行しているので、デフォルトで£記号になっている可能性がありますが、なぜですか?)

どんな助けでも大歓迎です。

4

2 に答える 2

9

フォーマットを$xx.xxに設定するマクロを記録したところ、次のように作成されました[$$-409]#,##0.00。-409は通貨を特定の国にローカライズしているようです。それがなくても動作します-に変更してみてください.NumberFormat = "[$" & sym & "]#,##0.00"

于 2013-01-22T09:55:37.193 に答える
0

ところで、私は投稿後にあなたの質問をいくらか読んだと思います;)Excelは、通貨、言語、日付などのコンピューターの地域設定に大きく影響されます... numberformatを使用すると、必要な記号を保持するように強制できます。切り上げの問題である場合は、次のことを試すことができます。Excel 2010で、[ファイル]-[オプション]-[詳細]に移動し、[このブックを計算するとき]まで下にスクロールして、[表示どおりの精度に設定]をクリックして[OK]をクリックします。 

これを試してください:値が数値/整数/小数である場合...

Range("a2").Style = "Currency"

または、次の形式を使用できます。

Format(value, "Currency")

Format(Range(a2).value, "Currency")

参照:

http://www.mrexcel.com/forum/excel-questions/439331-displaying-currency-based-regional-settings.html

http://www.addictivetips.com/microsoft-office/excel-2010-currency-values/

(追記:私はモバイルを使用しています。これらの2つのリンクを試してみてください)

于 2013-01-21T16:54:11.633 に答える