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

关于将多工作表指定区域数据复制到汇总工作表的技术咨询

将多工作表指定区域数据复制到汇总工作表的技术咨询解决方案

Hey Kevin, 针对你提到的每月有28-31个工作表,需要把每个表的B23:J33区域复制到Summary工作表的需求,我给你整理了两种实用的方案,你可以根据操作频率和需求来选择:

一、手动操作法(适合偶尔执行的场景)

如果你只是偶尔需要做一次这个操作,手动复制粘贴就足够简单:

  • 打开目标Excel文件,切换到第一个需要提取数据的工作表
  • 选中区域B23:J33,按下Ctrl+C完成复制
  • 切换到Summary工作表,找到合适的空白起始位置(比如从A1开始,或者接在已有数据的下一行),按下Ctrl+V粘贴
  • 重复上述步骤,依次处理所有需要提取数据的工作表

二、VBA宏自动处理法(适合每月重复执行的场景)

如果每月都要做这个操作,用VBA宏可以帮你节省大量时间,步骤如下:

  1. 打开你的Excel文件,按下Alt+F11打开VBA编辑器
  2. 在编辑器左侧的项目窗口中,右键点击你的工作簿名称,选择「插入」→「模块」
  3. 在弹出的代码窗口中,粘贴以下代码:
Sub CopyToSummary()
    Dim ws As Worksheet
    Dim summaryWs As Worksheet
    Dim nextRow As Long
    
    ' 指定汇总工作表
    Set summaryWs = ThisWorkbook.Worksheets("Summary")
    
    ' 遍历工作簿中所有工作表
    For Each ws In ThisWorkbook.Worksheets
        ' 跳过汇总表本身,避免重复复制
        If ws.Name <> "Summary" Then
            ' 找到汇总表中下一个空白行的行号
            nextRow = summaryWs.Cells(summaryWs.Rows.Count, "A").End(xlUp).Row + 1
            ' 将指定区域复制到汇总表的空白行
            ws.Range("B23:J33").Copy Destination:=summaryWs.Cells(nextRow, "A")
        End If
    Next ws
    
    ' 操作完成提示
    MsgBox "所有工作表的数据已成功复制到Summary表!", vbInformation
End Sub
  1. 按下F5运行代码,或者回到Excel界面,点击「开发工具」→「宏」,选择CopyToSummary后点击「执行」

额外调整说明

  • 如果你的汇总表名称不是「Summary」,请把代码中的"Summary"替换成你实际的表名
  • 如果只需要复制数据值(不需要保留格式),可以把复制粘贴的代码段改成以下内容:
ws.Range("B23:J33").Copy
summaryWs.Cells(nextRow, "A").PasteSpecial xlPasteValues
Application.CutCopyMode = False ' 清除剪贴板缓存,避免弹窗提示

备注:内容来源于stack exchange,提问作者Kevin Trippel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:29:34