การเว้นวรรคก่อนและคำตัวเอียง

ฉันมีเอกสารใน 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

ฉันพบว่าสิ่งนี้ใช้งานได้และทำตามที่ฉันต้องการ แต่จะทำได้เฉพาะกับคำตัวเอียงคำแรกในเอกสารเท่านั้น และจะไม่ดำเนินต่อไปตลอดส่วนที่เหลือของเอกสาร


person UserAtlas    schedule 06.09.2015    source แหล่งที่มา


คำตอบ (2)


สิ่งนี้ได้ผลสำหรับฉัน:

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

ฉันคิดว่าคุณสามารถทำได้โดยไม่ต้องใช้ VBA:

ในการค้นหา/แทนที่ของ Word ให้เปิดการค้นหาด้วยไวด์การ์ด ค้นหารูปแบบ แบบอักษร... ตัวเอียง และค้นหารูปแบบ (*>)

* หมายถึงค้นหาอะไรก็ได้
> หมายถึงค้นหาที่ส่วนท้ายของคำ และ
วงเล็บ () จะสร้างกลุ่มที่มีหมายเลขอัตโนมัติเมื่อรูปแบบตรงกัน

ในกล่องแทนที่ อย่าเปลี่ยนรูปแบบและแทนที่ด้วยข้อความ: <space>\1 เพื่อแทรกช่องว่างตามด้วยกลุ่ม #1

person xidgel    schedule 06.09.2015
comment
สวัสดี ขอบคุณสำหรับการตอบกลับของคุณ ฉันเพิ่งลองสิ่งนี้และดูเหมือนจะไม่ได้ผลสำหรับฉัน - person UserAtlas; 06.09.2015
comment
@UserAtlas; ฉันแก้ไขคำตอบ --- ลองอีกครั้ง - person xidgel; 07.09.2015