需要在Word中格式化文本文件并不罕见。例如,您可能会从需要格式化的人那里收到一封电子邮件,也可能会从朋友那里得到一个ASCII文件。格式化此类文件最常见的必要条件是,从行首删除多余的空格或制表符,从行尾删除多余的空格或制表符,从每行开头删除“答复”字符,并将行合并为制作段落。

手工完成所有这些工作非常耗时,并且很容易使您发胖,尤其是在文件很大的情况下。下面的宏应该使您更轻松。它可以完成刚刚叙述的所有任务,并且可以很快完成。

Sub DoASCII()

Selection.HomeKey Unit:=wdStory     Selection.Find.ClearFormatting     Selection.Find.Replacement.ClearFormatting     With Selection.Find         .Text = "^p^w"

.Replacement.Text = "^p"

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = False         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute Replace:=wdReplaceAll     For J = 1 To 4         Selection.Find.Text = "^p> "

Selection.Find.Execute Replace:=wdReplaceAll     Next J     Selection.Find.Text = "^p^w"

Selection.Find.Execute Replace:=wdReplaceAll     Selection.Find.Text = "^w^p"

Selection.Find.Execute Replace:=wdReplaceAll     Selection.Find.Text = "^p^p"

Selection.Find.Replacement.Text = "[{}]"

Selection.Find.Execute Replace:=wdReplaceAll     Selection.Find.Text = "^p"

Selection.Find.Replacement.Text = " "

Selection.Find.Execute Replace:=wdReplaceAll     Selection.Find.Text = "[{}]"

Selection.Find.Replacement.Text = "^p"

Selection.Find.Execute Replace:=wdReplaceAll End Sub

您应注意,此宏最多将替换“>”

的四个级别字符放在行首。它还假定您想要段落中断的唯一位置是那些存在空白行的位置。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(10895)适用于Microsoft Word 2007、2010和2013。您可以在此处找到适用于Word的较早菜单界面的本技巧的版本:

链接:/ word-Formatting_Text_Files_with_VBA [使用VBA格式化文本文件]。