批量将Word DOCX文件转换为DOTX模板文件的高效方法
批量将Word DOCX文件转换为DOTX模板文件的高效方法
我完全懂你手动逐个另存为DOTX的痛苦——以前改个后缀就能搞定的操作,换成DOCX格式后居然行不通了,确实挺折腾人的。下面给你分享几个高效的批量转换方案,不用挨个打开文件折腾:
方法一:用Word内置VBA宏批量转换
这个方法不需要额外工具,用Word自带的宏就能搞定,步骤很简单:
- 打开任意一个Word文档,按下
Alt + F11打开VBA编辑器 - 在左侧的Normal项目上右键,选择「插入」→「模块」
- 把下面的代码粘贴到模块窗口里:
Sub ConvertDOCXtoDOTX() Dim fd As FileDialog Dim strFolder As String Dim strFile As String Dim doc As Document ' 让用户选择要处理的文件夹 Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd .Title = "选择存放DOCX文件的文件夹" If .Show = -1 Then strFolder = .SelectedItems(1) & "\" Else Exit Sub End If End Set ' 遍历文件夹里所有DOCX文件 strFile = Dir(strFolder & "*.docx") Do While strFile <> "" Set doc = Documents.Open(strFolder & strFile) ' 另存为DOTX模板格式 doc.SaveAs2 _ FileName:=strFolder & Replace(strFile, ".docx", ".dotx"), _ FileFormat:=wdFormatXMLTemplate ' 关闭原文档,不保存修改(避免误改原文件) doc.Close SaveChanges:=wdDoNotSaveChanges strFile = Dir Loop MsgBox "批量转换完成!" End Sub
- 按下
F5运行宏,选择你存放DOCX文件的文件夹,等待弹窗提示完成就好 - 小提醒:这个宏会在原文件夹生成对应的DOTX文件,不会覆盖原DOCX文件,可以放心用
方法二:用PowerShell脚本批量转换(适合熟悉命令行的用户)
如果你习惯用命令行,这个方法也很高效:
- 打开记事本,粘贴下面的代码,保存成
Convert-DOCXtoDOTX.ps1(注意保存类型选「所有文件」)
$word = New-Object -ComObject Word.Application $word.Visible = $false $folderPath = Read-Host "请输入DOCX文件所在的文件夹路径" # 遍历指定文件夹下的所有DOCX文件 Get-ChildItem -Path $folderPath -Filter *.docx | ForEach-Object { $doc = $word.Documents.Open($_.FullName) # 替换后缀为DOTX $savePath = $_.FullName -replace "\.docx$", ".dotx" # 15对应Word的wdFormatXMLTemplate格式 $doc.SaveAs([ref]$savePath, [ref]15) $doc.Close() } # 清理Word进程 $word.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null Write-Host "批量转换完成!"
- 右键这个脚本文件,选择「用PowerShell运行」,然后输入DOCX文件所在的文件夹路径回车即可
- 同样,原DOCX文件不会被修改,新的DOTX文件会保存在同一目录
额外小提示
- 转换前最好备份一下原DOCX文件,虽然上面两个方法都不会修改原文件,但多一份备份总是更稳妥
- 如果你的Word是32位版本,运行PowerShell脚本时要选择32位的PowerShell(在开始菜单里找「Windows PowerShell (x86)」),否则可能会出现COM对象调用错误
备注:内容来源于stack exchange,提问作者Gordon Copestake




