如何通过查询合并宏启用Excel密码保护文件中多表并拆分至对应工作表
处理带密码保护的Excel文件批量合并与表格拆分方案
一、解除工作表密码保护(未知密码)
- 仅工作表结构保护的情况:把文件后缀改成
.zip,解压后找到xl/worksheets/目标工作表.xml,删除里面的<sheetProtection>整段代码,重新打包改回.xlsm后缀,就能编辑工作表内容了。 - 若为文件打开密码:需用Excel密码破解工具(如PassFab Excel Recovery)破解,注意确保操作合规,拥有文件的操作权限。
二、用Power Query批量导入所有文件数据
- 新建空白Excel,点击「数据」→「获取数据」→「从文件」→「从文件夹」,选中存放所有目标文件的文件夹,点「确定」后选择「转换数据」进入Power Query编辑器。
- 添加自定义列,输入公式:
Excel.Workbook([Content], true),展开该列的「Data」项,只保留你需要的那个同名工作表的数据。 - 此时已获取所有文件的原始数据,接下来处理同一列中的6个表格拆分。
三、拆分同一列中的6个表格
根据表格的分隔方式选择对应方法:
方法1:表格有明确标题标识(如「表格1」「表格2」)
- 添加自定义列,用公式标记每行所属表格:
= if Text.StartsWith([你的列名], "表格1") then "表格1" else if Text.StartsWith([你的列名], "表格2") then "表格2" else if Text.StartsWith([你的列名], "表格3") then "表格3" else if Text.StartsWith([你的列名], "表格4") then "表格4" else if Text.StartsWith([你的列名], "表格5") then "表格5" else if Text.StartsWith([你的列名], "表格6") then "表格6" else null - 选中该自定义列,点击「转换」→「填充」→「向下填充」,让每一行都带上所属表格的标记。
- 筛选掉标记为
null的行,同时筛选掉包含「填写说明/请添加更多行」的文本行,保留编号1-5的空白响应行。 - 按自定义的表格标记列进行分组,每组对应一个独立表格的数据。
方法2:表格是固定行数的区块
如果每个表格包含固定行数(比如每个表格含标题+5行响应,共6行):
- 添加索引列(从0开始),再添加自定义列计算所属表格:
= "表格" & Number.ToText(Number.IntegerDivide([索引], 6) + 1) - 后续操作同方法1:向下填充标记、筛选无效行、分组数据。
四、导出分组数据到对应工作表
- 选中分组后的某一组数据,点击「关闭并上载」→「关闭并上载至」,选择「仅创建连接」并勾选「加载到工作表」,指定工作表名称(如「表格1汇总」)。
- 重复上述操作,将6组数据分别加载到6个独立的工作表中。
- 最后检查每个工作表,确认空白响应行(编号1-5)都被保留,无说明类文本。
内容的提问来源于stack exchange,提问作者Yan Tung Chi
相关产品推荐
相关产品推荐

