2015-09-06 110 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