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

使用VBA将工作簿中Daily表复制到另一工作簿并自动保存关闭的咨询

VBA 跨工作簿复制表格实现方案

你的需求可以通过VBA实现,你现有代码存在拼写错误、逻辑颠倒、对象操作方法错误等问题,以下是核心修正点和可直接运行的代码:

原代码核心问题

  • 多处拼写错误:wookbooks应为Workbooks、woorksheet应为Worksheet、x1up应为xlUp、lasrow和你定义的变量名lastrow不一致
  • 赋值逻辑颠倒:原代码将空的dt/line/shift/prod变量赋值给源表格单元格,实际应该读取源表格单元格的值存入变量
  • 变量类型错误:ws应为Worksheet类型,不是Sheets集合类型
  • 操作逻辑错误:普通变量没有Paste方法,不需要选中单元格再赋值,直接写入单元格即可
  • 语法错误:关闭工作簿的参数应为SaveChanges:=True,使用冒号加等号

修正后代码

Private Sub CommandButton3_Click()
    ' 声明变量
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim dt As Variant
    Dim line As Variant
    Dim shift As Variant
    Dim prod As Variant
    Dim wb As Workbook
    Dim targetWs As Worksheet
    Dim FileName As String
    Dim lastrow As Long
    
    ' 配置参数
    FileName = "C:\Users\john.bauer\Desktop\Archive.xlsx"
    Set ws = Sheet4 ' 源数据所在工作表
    Set tbl = ws.ListObjects("Daily") ' 源结构化表
    
    ' 读取源表第一行的4列数据,可根据实际需求调整读取范围
    With tbl.DataBodyRange
        dt = .Cells(1, 1).Value
        line = .Cells(1, 2).Value
        shift = .Cells(1, 3).Value
        prod = .Cells(1, 4).Value
    End With
    
    ' 打开目标工作簿,获取目标工作表
    Set wb = Workbooks.Open(FileName)
    Set targetWs = wb.Worksheets("Table")
    
    ' 计算目标表第一列最后一行的行号
    lastrow = targetWs.Cells(targetWs.Rows.Count, 1).End(xlUp).Row
    
    ' 写入数据到目标表新行
    targetWs.Cells(lastrow + 1, 1).Value = dt
    targetWs.Cells(lastrow + 1, 2).Value = line
    targetWs.Cells(lastrow + 1, 3).Value = shift
    targetWs.Cells(lastrow + 1, 4).Value = prod
    
    ' 保存并关闭目标工作簿
    wb.Save
    wb.Close SaveChanges:=True
    
    ' 释放对象内存
    Set targetWs = Nothing
    Set wb = Nothing
    Set tbl = Nothing
    Set ws = Nothing
End Sub

使用注意事项

  • 请确认目标工作簿Archive.xlsx中确实存在名为Table的工作表
  • 如果需要复制整个Daily表格的全部数据,可修改读取逻辑批量写入,无需逐单元格赋值
  • 若Daily表格是普通区域不是结构化表,调整tbl相关的读取逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:24:00