【问题标题】:Using Excel 2007+ VBA and a Cell's NumberFormat Property to Format Number Text使用 Excel 2007+ VBA 和单元格的 NumberFormat 属性来格式化数字文本
【发布时间】:2016-03-24 04:15:46
【问题描述】:

在使用 MsgBox 和/或串联文本字符串显示相关数字时,我想使用 VBA 和单元格格式。

我已尝试使用单元格的 NumberFormat 属性,但得到的结果无法使用...

例如以下示例代码应该告诉用户对标价高出 150% 的柠檬水收取 4.50 美元...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "I should charge " & Format(Range("a3").Value * 1.5, Range("a3").NumberFormat) & " for this lemonade."
End Sub

...导致...

显示的场景有两种:第一种是无格式单元格;第二个是货币格式的单元格。我希望我的代码能够适应任何有效的数字格式,包括自定义格式。

【问题讨论】:

  • 只要您的区域设置是美国,您就可以使用Application.Text 而不是Format

标签: excel format number-formatting vba


【解决方案1】:

只要你使用美国区域设置,你可以使用Application.Text而不是Format

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "I should charge " & Application.Text(Range("a3").Value * 1.5, Range("a3").NumberFormat) & " for this lemonade."
End Sub

例如。如果您没有美国设置,您仍然需要解决任何本地化货币格式。

【讨论】:

  • 谢谢,罗里!我已经实现并测试了它,它运行良好。
猜你喜欢
  • 2013-09-18
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
相关资源
最近更新 更多