You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA从已关闭工作簿复制可变单元格区域出现报错如何处理

VBA读取关闭工作簿报错问题排查与修复

错误点梳理

  • 第一次"Object doesn't support this property or method"报错原因:Workbook对象不能直接调用Cells属性,LastSrcRow = src.Cells(...)行没有指定src下的具体工作表,且Rows.Count未指定所属工作表,默认取当前活动工作表的行数,和源表行数匹配逻辑错误
  • 第二次"Object Required" (424)报错原因:变量已重命名为source,但关闭对象时仍然使用未定义的变量src1,系统找不到对应对象因此报错
  • 通用语法问题:代码中跨换行的赋值语句没有加VBA续行符_,会触发语法错误;原始代码中LastSrcRow用Integer类型存储,当行数超过32767时会触发溢出错误(修改后换成Long是正确的)

修复后完整代码

Sub PadslocReadData()
    Application.ScreenUpdating = False
    Dim source As Workbook
    Dim LastSrcRow As Long
    Dim curWorkbook As Workbook
    
    Set curWorkbook = ThisWorkbook
    ' 此处替换为你的实际文件完整路径
    Set source = Workbooks.Open("C:\你的实际文件路径\filename.xls", False, False)
    ' 明确指定源表计算最后一行
    LastSrcRow = source.Worksheets("Sheet1").Cells(source.Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row
    ' 跨行赋值加续行符,注意下划线前需要保留空格
    curWorkbook.Worksheets("sls").Range("A1:G" & LastSrcRow).Formula = _
    source.Worksheets("Sheet1").Range("A1:G" & LastSrcRow).Formula
    
    ' 用正确的变量名关闭工作簿
    source.Close False
    Application.ScreenUpdating = True
End Sub

额外注意事项

  • 打开文件的路径请替换为实际的完整绝对路径,避免共享路径访问权限问题
  • 最后记得把ScreenUpdating改回True,否则Excel界面会出现无响应的假死状态

内容的提问来源于stack exchange,提问作者Jaydubs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:15:02