Vba 在MS Word中清理字典中凌乱的段落中断

Vba 在MS Word中清理字典中凌乱的段落中断,vba,ms-word,Vba,Ms Word,我有一本MS Word格式的词典,我想清除词典条目中的任何段落分隔符,只保留分隔任何两个词典条目的段落分隔符。字典的布局现在是这样的: 我需要一个宏或正则表达式,首先从文档中删除所有段落分隔符,这将生成以下布局: 然后在下一步中,只在字典条目之前添加段落分隔符,这意味着只在粗体短语之前加上方括号中的拼音,以获得此布局: 我过去常帮我做段落标记 同样,我用4 find/replace手动录制了一个宏(使用两个步骤确保后跟方括号的单词匹配)。下面是宏: Sub Separator() Selec

我有一本MS Word格式的词典,我想清除词典条目中的任何段落分隔符,只保留分隔任何两个词典条目的段落分隔符。字典的布局现在是这样的:

我需要一个宏或正则表达式,首先从文档中删除所有段落分隔符,这将生成以下布局:

然后在下一步中,只在字典条目之前添加段落分隔符,这意味着只在粗体短语之前加上方括号中的拼音,以获得此布局:

我过去常帮我做段落标记

同样,我用4 find/replace手动录制了一个宏(使用两个步骤确保后跟方括号的单词匹配)。下面是宏:

Sub Separator()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "^13"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
    .MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = True
With Selection.Find
    .Text = "\["
    .Replacement.Text = "^&"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "[a-z\-]@ \["
    .Replacement.Text = "^p^&"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
    .Bold = False
    .Italic = False
End With
With Selection.Find
    .Text = "\["
    .Replacement.Text = "["
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
端接头

如果有什么需要调整的地方,请告诉我,我会尝试更改:)


编辑:为连字符添加了部分。

您自己尝试过什么吗??如果是,请在问题中添加您的代码。如果你不尝试用MS Word录制宏,只需执行
find
>
replace
操作,这是你需要的技巧。我不是程序员KazJaw,我无法创建代码或录制宏。我只知道Word的find and replace中使用的基本表达式,我知道如何在Word中插入和运行宏,仅此而已。我可以从我的字典中删除分节符,但我不知道怎样才能让Word在粗体短语之前添加分节符,这些短语后面是方括号内的任何内容[]。谢谢你的帮助,杰瑞。我试过你的宏,发现了两个问题。首先,它不在条目前面加一个粗体的段落标记,而是在条目后面加一个单词,然后将前面条目的最后一个单词与下面的条目单词粘在一起。下面是我在从我的原始帖子中选择的单词上运行它时的样子。另一个问题是,它将连字符的条目一分为二,在连字符后插入一个段落标记,在文字中,这是一张图片,我从代码中删除了一些行,据说是为了缩短它(不知何故,当我测试它时,它工作得很好)。我想我会重新插入它们。此外,还修改了代码以匹配连字符。我已经尝试过了Jerry,这一次只删除了所有的段落分隔符,没有做任何其他更改。