使用Excel VBA设置自定义货币数字格式时出现Error 13类型不匹配错误求助
解决Excel VBA设置自定义货币格式时的Error 13(类型不匹配)问题
你的问题根源出在自定义格式字符串里的双引号没有正确转义——在VBA中,字符串内部的双引号必须用两个连续的双引号("")来表示,否则VBA会把单个双引号当成字符串的结束标志,导致语法混乱,触发类型不匹配错误。
修正后的代码
ThisWorkbook.Sheets("Calculatie").Range("G2:H1000").NumberFormat = "_ € * #.##0,00_ ;_ € * -#.##0,00_ ;_ € * ""-""??_ ;_ @_ "
关键修正点解释
你原来的格式字符串里的 " - " 部分,在VBA里必须写成 ""-"":
- 原格式中的
_ € * " - "??_要改为_ € * ""-""??_ - 这样VBA才能正确识别这是字符串内部的双引号,而不是字符串的结束标记
格式对应规则回顾
这个自定义格式的四个部分(用分号分隔)分别对应:
_ € * #.##0,00_:正数格式——下划线留空对齐,显示€,数值右对齐,保留两位小数_ € * -#.##0,00_:负数格式——同上,只是数值前加负号_ € * ""-""??_:零值格式——显示€和短横线,??用于对齐小数位_ @_:文本格式——原样显示输入的文本
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

