VBA判断其他工作表单元格是否为空并插入公式报错求助
问题解决:VBA插入公式时的无效字符错误
你的代码报错有两个核心原因:
- 双引号未转义:VBA字符串中要表示公式里的双引号,必须用两个连续双引号(
"")转义。你代码里的" @ "直接用单个双引号,会被VBA误判为字符串结束标志,触发语法错误。 - 公式分隔符错误:VBA的
Formula属性统一使用英文逗号(,)作为函数参数分隔符,而非Excel界面里的分号(;)——分号是区域设置适配的界面符号,VBA内部不识别。
修正后的代码
' 取消不必要的Select操作,直接操作单元格更高效 If IsEmpty(Worksheets(1).Range("A2").Value) Then Range("IN47").Formula = "=CONCATENATE('Name 1'!B2, ""@"", 'Name 1'!C2)" End If
额外优化建议
- 尽量避免使用
Select方法,直接引用单元格赋值能提升代码运行效率和可读性。 - 若使用Excel 2019及以上版本,可改用更简洁的字符串连接方式:
Range("IN47").Formula = "='Name 1'!B2 & ""@"" & 'Name 1'!C2"
内容的提问来源于stack exchange,提问作者Rene
相关产品推荐
相关产品推荐

