2015-09-06 107 views
0

我在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

这为我工作:

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 
+1

- 现在呢? –

+0

TQ。完成。它已经花了7年时间进入我们所处的困境 - 并且可能需要更长的时间才能清除它 - 所以不要着急!无论如何,我似乎已经在聊天中写了半本书,因此您可以通过扫描了解正在进行的工作/“加快速度”。 – pnuts

1

我认为你可以做到这一点没有VBA:

在Word的查找/使用通配符搜索替换反过来,搜索格式,字体......,斜体和搜索模式(*>)

*手段发现了什么,
>手段找到这个词的末尾,
图案时,匹配()括号将创建一个autonumbered组。

在替换框中,不要更改格式和替换为文本:<space>\1插入一个空格,然后是组#1。

+0

嗨谢谢您的答复。我刚刚尝试过这一点,似乎并不适合我。 – UserAtlas

+0

@UserAtlas;我修改了答案 - 再试一次。 – xidgel

+0

字的哪个版本您使用的?顺便说一句,这*做*为我工作。 – pnuts