我在Word中有一个文档,其中包含数百个斜体字,它们之间和前一个字之间没有空格。
例如:
快速棕色狐狸跳过懒惰的狗。
我要找的结果是:
快速棕色狐狸跳过懒惰的狗。
我一直在尝试使用查找和替换构建一个宏,.InsertBefore
为我解决这个问题,但没有成功。
这是我到目前为止的代码。
Sub FindItalics()
Selection.Find.ClearFormatting
Selection.Find.Font.Italic = True
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
InsertBefore
End Sub
Sub InsertBefore()
With Selection
.InsertBefore " "
End With
End Sub
我发现这有效并且符合我的要求,但是它只对文档中的第一个斜体字执行,并且不会在文档的其余部分继续。
答案 0 :(得分:1)
我认为你可以在没有VBA的情况下做到这一点:
在Word的查找/替换中使用通配符打开搜索,搜索格式,字体...,斜体并搜索模式 (*>)
。
*
意味着找到任何东西,
>
表示找到单词的结尾,和
当模式匹配时,()
括号将创建自动编号组。
在“替换”框中,不要更改格式,而是替换为文本:<space>\1
以插入空格,然后是组#1。
答案 1 :(得分:0)
这对我有用:
Sub FindItalics()
Dim rng As Range
Set rng = Selection.Range
With rng.Find
.Text = ""
.Replacement.Text = ""
.ClearFormatting
.Wrap = wdFindStop
.Format = True
.Font.Italic = True
.MatchWholeWord = False
.Forward = True
While .Execute
'Note: 'rng' is now the range containing the matched content
rng.InsertBefore " "
rng.Collapse wdCollapseEnd
Wend
End With
End Sub