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