如何编写脚本标记Word中的end of cell marker?
Word转带格式标记文本:单元格结束标记处理VBA方案
核心VBA脚本
直接用以下代码处理Word文档中的表格单元格结束标记,同时可整合格式标记(加粗、下划线)的标注逻辑:
Sub ConvertDocToFormattedText() Dim doc As Document Dim tbl As Table Dim cell As Cell Dim rng As Range Set doc = ActiveDocument ' 处理所有表格的单元格结束标记 For Each tbl In doc.Tables For Each cell In tbl.Range.Cells Set rng = cell.Range ' 定位单元格结束标记(Word单元格末尾实际是Chr(13)+Chr(7)组合) rng.MoveEnd Unit:=wdCharacter, Count:=-1 ' 排除末尾的Chr(7) If rng.Characters.Last = Chr(13) Then rng.Characters.Last.Text = "|" ' 替换为指定分隔符 End If Next cell Next tbl ' 自动标注加粗文本 Set rng = doc.Content With rng.Find .ClearFormatting .Font.Bold = True .Forward = True .Wrap = wdFindContinue Do While .Execute rng.Text = "(BOLD)" & rng.Text & "(BOLD)" rng.Collapse wdCollapseEnd ' 继续查找下一处 Loop End With ' 自动标注下划线文本 With rng.Find .ClearFormatting .Font.Underline = wdUnderlineSingle .Forward = True .Wrap = wdFindContinue Do While .Execute rng.Text = "(UNDERLINED)" & rng.Text & "(UNDERLINED)" rng.Collapse wdCollapseEnd ' 继续查找下一处 Loop End With ' 保存为带格式标记的文本文件 doc.SaveAs2 FileName:="带格式标记的文档.txt", FileFormat:=wdFormatText MsgBox "处理完成,已生成带格式标记的文本文件!" End Sub
关键说明
- 单元格结束标记处理:Word表格单元格的结束标记是
Chr(13)+Chr(7)组合,代码先移除末尾的Chr(7),再定位Chr(13)替换为|,确保分隔符准确插入。 - 格式标记自动标注:整合了加粗、下划线文本的标记逻辑,替代手动查找替换,提升效率。
- 运行方式:打开目标Word文档,按
Alt+F11打开VBA编辑器,插入模块粘贴代码,按F5执行即可。
与现有流程整合
如果已通过查找替换处理了表头,可注释掉脚本中格式标记的代码块,单独运行单元格替换部分;也可以直接用完整脚本一次性完成格式标记、单元格分隔的全流程,后续直接用Power Query处理生成的文本文件即可。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

