Menyisipkan Spasi Sebelumnya dan Kata yang Dicetak Miring

Saya memiliki dokumen di Word yang berisi ratusan kata yang dicetak miring yang tidak memiliki spasi di antara kata tersebut dan kata sebelumnya.

Misalnya:

Rubahcokelat yang cepat melompati anjingmalas.

Hasil yang saya cari adalah:

Rubah cokelat yang cepat melompati anjing yang malas.

Saya telah mencoba membuat makro menggunakan Temukan dan ganti dan .InsertBefore untuk menyelesaikan masalah ini untuk saya tetapi tidak berhasil.

Ini adalah kode yang saya miliki sejauh ini.

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

Saya telah menemukan bahwa ini berfungsi dan melakukan apa yang saya perlukan, namun ini hanya berfungsi untuk kata pertama yang dicetak miring dalam dokumen dan tidak akan berlanjut sepanjang sisa dokumen.


person UserAtlas    schedule 06.09.2015    source sumber


Jawaban (2)


Ini berhasil untuk saya:

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
person Tim Williams    schedule 07.09.2015

Saya pikir Anda bisa melakukan ini tanpa VBA:

Di Temukan/Ganti Word, aktifkan pencarian dengan wildcard, cari Format, Font..., Italic dan cari pola (*>).

Tanda * berarti menemukan apa pun,
> berarti menemukan di akhir kata, dan
tanda kurung () akan membuat grup bernomor otomatis jika polanya cocok.

Pada kotak Ganti, jangan ubah formatnya dan Ganti dengan teks: <space>\1 untuk menyisipkan spasi diikuti grup #1.

person xidgel    schedule 06.09.2015
comment
Hai Terima kasih atas balasan Anda. Saya baru saja mencoba ini dan sepertinya tidak berhasil untuk saya. - person UserAtlas; 06.09.2015
comment
@UserAtlas; Saya mengubah jawabannya --- coba lagi. - person xidgel; 07.09.2015