Excel宏Run-time error 1004:单元格公式赋值时出错求助
Excel VBA Run-time Error 1004 解决方法
你遇到的Run-time error 1004,核心原因及修复方案如下:
问题根源
代码中Cells对象未明确指定所属工作表,当当前活动表不是Lista Sc时,Cells会默认指向活动表,导致Range引用跨表不匹配,触发对象定义错误。此外原代码缺失End With语句,也会引发语法问题。
修复后的代码
Worksheets("Lista Sc").Select With Sheets("Lista Sc") ' 给Cells添加前缀,明确归属当前With块的工作表 .Range(.Cells(riga, 3), .Cells(riga + n, 3)).MergeCells = True .Range(.Cells(riga, 5), .Cells(riga + n, 5)).MergeCells = True .Range(.Cells(riga, 21), .Cells(riga + n, 21)).MergeCells = True s = "=SOMMA(S" & CStr(riga) & ";T" & CStr(riga + 1) & ":T" & CStr(riga + n) & ")-L" & CStr(riga) .Cells(riga, 21).FormulaLocal = s End With ' 补充缺失的End With
额外检查要点
- 确认变量
riga和n是有效正整数,且riga + n不超过工作表最大行数(避免引用无效单元格) - 公式中的分号
;是欧洲版Excel的参数分隔符,搭配FormulaLocal使用是正确的,无需修改 - 合并单元格后赋值公式时,确保目标单元格是合并区域的左上角(你的代码中
.Cells(riga,21)符合要求)
内容的提问来源于stack exchange,提问作者Andrea Usai
相关产品推荐
相关产品推荐

