如何在VBA公式或字符串中正确拼接星号“*”解决报错问题
VBA 中拼接星号(*)至字符串/公式报错的解决方法
拼接星号时报错基本都是引号配对错误、或者公式场景下转义规则没搞对,按对应场景写就不会出错:
- 普通VBA字符串拼接
星号不需要额外转义,直接放在双引号包裹的字符串段里,用&连接即可:Dim result As String ' 拼接结果:订单*2024 result = "订单" & "*" & "2024" - 给单元格写入公式的场景
要同时遵守两套语法规则:- VBA 字符串内部要表示一个双引号,必须写两个连续的双引号,90%的拼接报错都是漏了这个规则
- Excel公式中
*默认是通配符(匹配任意长度字符),如果要匹配字面意义的星号,需要在*前加~转义
示例1:写入带通配符*的公式,统计A列以"已完成"结尾的单元格数
示例2:写入匹配字面量*的公式,统计A列内容等于"*已完成"的单元格数' 对应Excel原生公式:=COUNTIF(A:A,"*已完成") Range("C1").Formula = "=COUNTIF(A:A,""*已完成"")"' 对应Excel原生公式:=COUNTIF(A:A,"~*已完成") Range("C1").Formula = "=COUNTIF(A:A,""~*已完成"")"
排查技巧:写完拼接代码后,可以先把拼接完成的公式字符串输出到VBA立即窗口(
Debug.Print 拼接结果),核对引号是否配对、星号转义是否正确,再赋值给单元格Formula属性,能快速定位问题。
内容的提问来源于stack exchange,提问作者woops
相关产品推荐
相关产品推荐

