运行数月的多个VBA宏突发Run-time error -214724809无效参数错误
错误原因分析
针对你遇到的Run-time error -214724809 (80070057): Invalid Argument错误(触发在Rows(lrow).Copy语句),结合代码和“此前正常运行”的前提,可能的原因如下:
- 无效的行号参数:循环起始值
(ws.Cells(ws.Rows.count, "B").End(xlUp).Row - 15)可能因数据变化变成小于3的数值(比如ws工作表B列最后一行行数小于18时,计算结果会小于3),导致循环中lRow出现负数或0这类无效行号,调用Rows(lRow).Copy时传入非法参数。 - 工作表结构或保护状态变化:Master工作表可能被设置了行保护,或者目标行存在合并单元格、异常隐藏行/列的结构问题,导致Copy方法无法正常读取行数据。
- 变量
j的异常值间接干扰:虽然错误触发在Copy,但如果j的值为1,Resize(j-1)会变成Resize(0),插入0行的操作可能破坏Excel剪贴板状态,导致后续Copy调用失败。 - 文件或Excel进程异常:文件出现轻微损坏,或者Excel进程缓存异常(比如剪贴板被占用、内存溢出),导致Copy方法调用时参数解析失败。
- 数据内容异常:
lRow对应的行中存在特殊数据(比如超大文本、损坏的公式链接、异常OLE对象),Copy操作读取这些内容时触发参数错误。
内容的提问来源于stack exchange,提问作者Ryan Data Guy
相关产品推荐
相关产品推荐

