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

如何实现Excel工作表联动:主表新增/删除数据时副表自动同步

Excel主表与副表自动同步(含新增/删除数据)

方案1:Power Query(无代码,推荐)

这个方法能自动同步新增、删除的数据,支持自动刷新,不需要写代码:

  • 把Sheet1的数据转为Excel表格:选中Sheet1所有数据(含表头),按Ctrl+T,勾选「我的表格有标题」后确定。
  • 创建Power Query连接:点击「数据」选项卡 →「从表格/区域」,打开Power Query编辑器后直接点「关闭并上载至」,选择「仅创建连接」后确定。
  • 在目标工作表导入数据:回到目标表,点击「数据」→「现有连接」,选中刚才的连接点「打开」,在「导入数据」弹窗里选「表」,指定起始单元格(比如A1),勾选「刷新数据时覆盖现有单元格」后确定。
  • 设置自动刷新:右键目标表的表格 →「表格」→「刷新」,点击「刷新所有」旁的下拉箭头→「连接属性」,勾选「打开文件时刷新数据」,还可以设置定时刷新间隔(比如1分钟)。

方案2:VBA宏(实时同步)

需要启用宏,能实现主表数据变化时立刻同步:

  1. 按Alt+F11打开VBA编辑器。
  2. 左侧「工程资源管理器」双击Sheet1,打开其代码窗口。
  3. 粘贴以下代码(注意修改目标工作表名称,比如把Sheet2改成你的副表名):
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim targetSheet As Worksheet
    Set targetSheet = ThisWorkbook.Sheets("Sheet2") ' 修改为你的目标工作表
    
    ' 清空副表原有数据(保留表头)
    targetSheet.Range("A2:" & targetSheet.Cells(targetSheet.Rows.Count, "C").End(xlUp).Address).ClearContents
    
    ' 复制主表数据到副表
    ThisWorkbook.Sheets("Sheet1").Range("A1:" & ThisWorkbook.Sheets("Sheet1").Cells(ThisWorkbook.Sheets("Sheet1").Rows.Count, "C").End(xlUp).Address).Copy _
        Destination:=targetSheet.Range("A1")
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Call Worksheet_Change(Target) ' 处理删除行后未触发Change事件的情况
End Sub
  1. 保存工作簿为「启用宏的工作簿(.xlsm)」格式。此后主表新增、删除、修改数据,副表会实时同步。

方案3:动态数组公式(适用于Excel 365/2021)

适合新版本Excel,操作最简单,但会显示空行:

  • 在目标表A1输入和主表一致的表头。
  • A2单元格输入公式 =Sheet1!A:A,按Enter后自动溢出所有数据;同理B2输入=Sheet1!B:B,C2输入=Sheet1!C:C。
  • 缺点:主表删除行后,目标表对应行变为空值,不会自动删除行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:24:52