| 方案 | 自動同步 | 難度 | 適用場景 |
|---|---|---|---|
| VBA 宏 | ✅ 可實現 | 高 | 舊版 Excel、複雜邏輯 |
| 公式(INDIRECT/3D引用) | ❌ 靜態 | 低 | 少量表、固定結構 |
| Power Query (推薦) | ✅ 原生支持 | 中 | 現代 Excel (2016+)、動態增減表 |
表1、表2。let
Source = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
Source2 = Excel.CurrentWorkbook(){[Name="表2"]}[Content],
// 如有更多表繼續添加
Combined = Table.Combine({Source, Source2}), // 合併
// 可選:按某列排序
Sorted = Table.Sort(Combined, {{"日期", Order.Ascending}})
in
Sorted
let
// 獲取工作簿中所有「超級表」
AllTables = Excel.CurrentWorkbook(),
// 篩選以「表」開頭的表(或自定義前綴)
Filtered = Table.SelectRows(AllTables, each Text.StartsWith([Name], "表")),
// 提取 Content 列並合併
Combined = Table.Combine(Filtered[Content])
in
Combined
此法新增子表只需命名以「表」開頭並格式化為超級表,總表刷新即可自動納入,零維護。
若子表在不同文件:
Power Query 是 Excel 多表合併同步的原生、無代碼、可維護方案。核心鍵:子表格式化為超級表 + M 語言動態合併 + 刷新策略配置。告別 VBA 複雜度,擁抱現代 Excel 數據建模能力。