VBA 格式问题

VBA formatting issue

我正在使用 VBA(€ accounting)将单元格格式化为以下格式:

"_-* #.##0,00 €_-;-* #.##0,00 €_-;_-* ""-""?? €_-;_-@_-"

但奇怪的是,在 Excel 中,数字显示为即 50,05 是 50,05000 欧元。

当我 select 格式时,我得到以下信息:

_-* #,##000 \€_-;-* #,##000 \€_-;_-* "-"?? \€_-;_-@_-

零中的逗号不见了。我该如何解决这个问题?

谢谢

我觉得左边的.很奇怪。

我会尝试 "_-* # ##0,00 €_-;-* # ##0,00 €_-;_-* ""-""?? €_-;_-@_-"

我在这里看到一些千位和小数点分隔符错误

"_-* #.##0,00 €_-;-* #.##0,00 €_-;_-* ""-""?? €_-;_-@_-" 用于点作为千位分隔符和逗号作为小数点分隔符

而您的示例(即 50,05)指向逗号小数点分隔符

可能是你的excel采用了相反的约定

转到单击“文件”>“选项”,单击“"Advanced"”选项卡并转到“"Editing options"”部分,您可以在该部分末尾检查假定的千位和小数点分隔符

然后相应地更改您的代码

或者您可以使用一些 "insensitive" 代码,它采用了当前的分隔符约定:

Selection.NumberFormat = "_-* #" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & ",00 €_-;-* #" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00 €_-;_-* ""-""?? €_-;_-@_-"

或者,以更易读的形式:

With Application
    Selection.NumberFormat = "_-* #" & .ThousandsSeparator & "##0" & .DecimalSeparator & ",00 €_-;-* #" & .ThousandsSeparator & "##0" & .DecimalSeparator & "00 €_-;_-* ""-""?? €_-;_-@_-"
End With

我发现错误了。我不得不交换逗号并指向:

"_-* #,##0.00 €_-;-* #,##0.00 €_-;_-* ""-""?? €_-;_-@_-"