0

WindowsがUSFormat(decimal = point)にあり、オランダ形式(10進数=カンマ)で実行された場合、以下のサンプルコードは正常に動作します。セルに書き込み式がsys小数点記号/ Reginal形式/ Excel VBAを受け付けません

なぜですか?

各コンマをポイントに戻す必要がないコンマ小数形式のセルに数式を書き込む方法はありますか?あなたは.Cells(4, 2)によって返さRangeのデフォルトのプロパティを使用して、セルの数式を設定しようとしている

Sub TestHandleRegionalFormat() 

    SourceData = "-.1" 

    Application.UseSystemSeparators = True 
    ActiveSheet.Cells(1, 2) = GetDecimalSeparator 
    ActiveSheet.Cells(2, 2) = Application.DecimalSeparator 

    If GetDecimalSeparator = "," Then SourceData = Replace(SourceData, ".", ",") 

    ActiveSheet.Cells(3, 2) = SourceData + 1000 

    ActiveSheet.Cells(4, 2) = "=" & SourceData & "+1000" 

End Sub 
Public Function GetDecimalSeparator() 
    'http://stackoverflow.com/a/32992918/4797660 
    GetDecimalSeparator = Mid(Format(1000, "#,##0.00"), 6, 1) 

End Function 

USFormat出力

USFormat

DutchFormat出力

CommaDecimalFormatOutput

答えて

1

これは.Valueです。現在のシステムロケールを使用してセルを数式に設定するには、代わりにFormulaLocalプロパティを使用する必要があります。

これは動作するはずです:

ActiveSheet.Cells(4, 2).FormulaLocal = "=" & SourceData & "+1000" 
関連する問題