word不支持直接批量导入txt文件,但可通过includetext域(轻量同步)、vba宏(批量插入到当前文档)或插入对象实现;关键需注意编码匹配与格式预处理。

Word 本身不支持“批量导入多个 TXT 文件”为独立文档或自动分页插入,但可以通过 INCLUDETEXT 域、VBA 宏或「插入对象」方式实现单次/有限批量插入——关键看你要的是“一个文档里按顺序插入多个 TXT”,还是“一键生成多个 Word 文档”。
用 INCLUDETEXT 域插入单个 TXT(支持相对路径)
这是最轻量、无需宏的方式,适合内容常更新、需保持与源 TXT 同步的场景。Word 会实时读取文件,但只支持纯文本(不保留 TXT 中的换行缩进格式,且不识别编码如 UTF-8-BOM)。
- 光标定位到要插入的位置 → 按
Ctrl+F9插入域花括号{ } - 在花括号内输入:
INCLUDETEXT "D:\notes\report.txt"(路径用双反斜杠或正斜杠均可) - 按
F9更新域,内容即显示;右键域可选「更新域」或「编辑域」 - ⚠️ 注意:
INCLUDETEXT默认以当前文档编码打开 TXT;若 TXT 是 UTF-8(带 BOM),通常能正常显示;若无 BOM 或是 GBK 编码,可能乱码——此时需先用记事本另存为「UTF-8」并确认有 BOM
用 VBA 批量插入多个 TXT 到当前文档(按文件名顺序)
适合一次性把一个文件夹下所有 TXT 按名称排序后,逐个插入到 Word 当前文档末尾,每份之间加空行或分页符。需要启用宏,且路径不能含中文(或需额外处理)。
- 按
Alt+F11打开 VBA 编辑器 → 插入新模块 → 粘贴以下代码:
Sub InsertAllTXT()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show <> -1 Then Exit Sub
Dim folderPath As String: folderPath = fd.SelectedItems(1) & ""
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
Dim file As Object
Dim files As Object: Set files = fso.GetFolder(folderPath).Files
Dim txtFiles() As String: ReDim txtFiles(1 To files.Count)
Dim i As Integer: i = 0
For Each file In files
If LCase(fso.GetExtensionName(file.Name)) = "txt" Then
i = i + 1: txtFiles(i) = file.Path
End If
Next
If i = 0 Then Exit Sub
' 按文件名排序(简单冒泡,仅适用于 ASCII 文件名)
Dim j%, k%
For j = 1 To i - 1
For k = j + 1 To i
If UCase(txtFiles(j)) > UCase(txtFiles(k)) Then
Dim t$: t = txtFiles(j): txtFiles(j) = txtFiles(k): txtFiles(k) = t
End If
Next
Next
' 插入
For j = 1 To i
Selection.InsertFile txtFiles(j)
Selection.TypeParagraph ' 插入空行
Next
End Sub- 运行前确保目标文件夹中 TXT 均为 ANSI 或 UTF-8(无 BOM 可能乱码);GBK 编码文件会显示为乱码,必须先转码
- 该脚本不创建新文档,所有内容插入到当前活动文档;插入后无法自动更新——和
INCLUDETEXT的动态性完全不同
插入时保留 TXT 的段落结构和基础格式
Word 插入纯文本默认会丢弃原 TXT 的空行、制表符缩进,但可通过预处理提升可读性:
- TXT 中用两个连续换行表示段落分隔 → 插入后基本能对应 Word 段落
- 避免用空格缩进,改用 Tab 键;插入后可在 Word 中用「查找替换」将
^t替换为「制表符」或「4个空格」 - 若需标题样式,可在 TXT 中用特殊标记(如
### 标题),插入后再用 Word「查找替换」配合通配符批量设样式 - ⚠️ 不要指望 Word 自动识别 TXT 中的 Markdown 或 HTML 标签——它只当普通字符处理
真正麻烦的不是“怎么插”,而是“编码怎么对得上”和“插入后要不要再排版”。很多看似失败的导入,其实只是 TXT 编码和 Word 当前默认编码不匹配;而批量操作一旦没做预校验(比如文件是否为空、路径是否有非法字符),VBA 就会静默跳过或报错 Run-time error '53': File not found——建议先拿 2–3 个样本文件手动试一遍流程。










