【发布时间】:2015-12-06 17:15:19
【问题描述】:
我正在尝试将命名单元格中的数字格式应用于另一个单元格,其中源单元格格式可以是百分比、货币(在我的情况下为欧元)或其他。我的代码使用.NumberFormat range 属性,如下所示:
For newCell in newCellsRange
Range("newCell").Value = some_calculation()
Range("newCell").NumberFormat = Range("sourceCell").NumberFormat
Next newCell
它适用于范围在工作表上的显示方式(无论是百分比、货币还是日期)。
但是,如果将这个相同的范围链接到条形图并将其值用作标签(没有花哨的格式,右键单击系列 > 添加数据标签,仅此而已),当我触发时标签格式会改变更新图表源范围的宏(在我的示例中为newCellsRange):格式将从欧元货币格式更改为不正确的美国货币格式:1 523€ 将变为1,523 $,235 € 将变为,235 $ .
为了提供更多详细信息,我发现该范围的 .NumberFormat 属性是"#,##0 $"(显示€),而图表标签的属性是"# ##0 $"。我不知道:
- 为什么宏会让逗号消失,因为我没有为此做任何事情
- 为什么
"#,##0 $"会在电子表格中显示为€,而"# ##0 $"会显示为$。
我能做些什么来避免这种奇怪的格式切换?
如果这有帮助(我对此表示怀疑):W7 Enterprise(英文版)上的 Excel 2013 32 位(英文版)
【问题讨论】:
标签: vba excel number-formatting