【问题标题】:Using Excel VBA to set number format使用 Excel VBA 设置数字格式
【发布时间】:2021-07-30 13:31:48
【问题描述】:

我正在尝试以我部门使用的特定格式在 Excel 中设置一些货币值,但它不接受我的特定格式。我测试了一个非常简单的格式,它被接受了,所以我有 99% 的把握这是与我抗争的格式。

我的代码是

ThisWorkbook.Sheets("Calculatie").Range("G2:H1000").NumberFormat = "_ € * #.##0,00_ ;_ € * -#.##0,00_ ;_ € * " - "??_ ;_ @_ "

预期输出在单元格左侧有 €,在右侧有值 alignet(0 值是“€ -”)。相反,我收到一个错误;

Error 13 during execution: Types don't match(翻译自荷兰语,确切的措辞可能会被取消)

以下代码确实有效;

ThisWorkbook.Sheets("Calculatie").Range("G2:H1000").NumberFormat = "0.00;0.00;0.00;@"

我从 Excel 的“自定义数字符号”菜单中复制了格式,并在下面的网站上进行了检查,结果似乎是正确的。

https://www.excelanytime.com/excel/index.php?option=com_content&view=article&id=121:custom-number-formats-date-a-time-formats-in-excel-a-vba-numberformat-property&catid=79&Itemid=475

提前感谢您的帮助!

【问题讨论】:

  • 试试"_ € * #.##0,00_ ;_ € * -#.##0,00_ ;_ € * "" - ""??_ ;_ @_ "
  • 它正在运行!这是一个很好的开始,但出于某种原因,56 欧元变成了 56,000 欧元,而不是 56,00 欧元。我看不到额外的 0 来自哪里,但是删除 0 可以解决它; "_ € * #.##0,0_ ;_ € * -#.##0,0_ ;_ € * "" - ""??_ ;_ @_ "

标签: excel vba


【解决方案1】:

用户 BigBen 帮了我很大的忙!问题是“-”周围的双“”。

编辑;我不得不更改我的代码。更换后我仍然遇到奇怪的问题。这个问题并没有像我之前那样通过删除 0 来解决。可能由于我的荷兰语设置,我不得不交换小数点和逗号。适合我的代码是;

ThisWorkbook.Sheets("Calculatie").Range("G2:H1000").NumberFormat = "_ € * #,##0.00_ ;_ € * -#,##0.00_ ;_ € * "" - ""??_ ;_ @_ "

【讨论】:

  • 根据您的编辑,您可以尝试使用.NumberFormatLocal,而不是原始格式的.NumberFormat吗?
  • 我已经对它进行了快速测试,它似乎也能正常工作。感谢您的额外建议!
猜你喜欢
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-23
相关资源
最近更新 更多