Note: The other languages of the website are Google-translated. Back to English
English English

จะค้นหาและเน้นย่อหน้าที่ซ้ำกันในเอกสาร Word ได้อย่างไร?

สมมติว่าคุณมีเอกสาร Word ขนาดใหญ่ซึ่งอาจมีหลายร้อยหน้าตอนนี้คุณต้องการตรวจสอบว่ามีย่อหน้าที่ซ้ำกันหรือไม่จากนั้นไฮไลต์เพื่อให้โดดเด่นเพื่อให้คุณสามารถจัดการกับประโยคที่ซ้ำกันได้ คุณจะค้นหาและเน้นย่อหน้าที่ซ้ำกันอย่างรวดเร็วและง่ายดายในเอกสาร Word ได้อย่างไร

ค้นหาและเน้นย่อหน้าที่ซ้ำกันในเอกสาร Word ด้วยรหัส VBA


ค้นหาและเน้นย่อหน้าที่ซ้ำกันในเอกสาร Word ด้วยรหัส VBA

หากต้องการค้นหาและเน้นย่อหน้าที่ซ้ำกันในเอกสาร Word รหัส VBA ต่อไปนี้สามารถช่วยคุณได้โปรดทำตามนี้:

1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2. จากนั้นคลิก สิ่งที่ใส่เข้าไป > โมดูลคัดลอกและวางโค้ดด้านล่างลงในโมดูลเปล่าที่เปิดอยู่:

รหัส VBA: ค้นหาและเน้นย่อหน้าที่ซ้ำกันในเอกสาร Word:

Sub highlightdup()
    Dim I, J As Long
    Dim xRngFind, xRng As Range
    Dim xStrFind, xStr As String
    Options.DefaultHighlightColorIndex = wdYellow
    Application.ScreenUpdating = False
    With ActiveDocument
        For I = 1 To .Paragraphs.Count - 1
            Set xRngFind = .Paragraphs(I).Range
            If xRngFind.HighlightColorIndex <> wdYellow Then
                For J = I + 1 To .Paragraphs.Count
                    Set xRng = .Paragraphs(J).Range
                    If xRngFind.Text = xRng.Text Then
                        xRngFind.HighlightColorIndex = wdBrightGreen
                        xRng.HighlightColorIndex = wdYellow
                    End If
                Next
            End If
        Next
    End With
End Sub

3. จากนั้นกด F5 กุญแจสำคัญในการเรียกใช้รหัสนี้ประโยคที่ซ้ำกันทั้งหมดจะถูกไฮไลต์พร้อมกันย่อหน้าที่ซ้ำกันที่แสดงครั้งแรกจะถูกเน้นด้วยสีเขียวและรายการที่ซ้ำกันอื่น ๆ จะถูกเน้นด้วยสีเหลืองดูภาพหน้าจอ:

doc เน้นประโยค dup 1


เครื่องมือเพิ่มประสิทธิภาพคำแนะนำ

 

Kutools For Word - คุณสมบัติขั้นสูงมากกว่า 100 รายการสำหรับ Word ประหยัดเวลา 50%

  • การดำเนินการที่ซับซ้อนและซ้ำ ๆ สามารถดำเนินการครั้งเดียวในไม่กี่วินาที
  • แทรกภาพหลาย ๆ โฟลเดอร์ลงในเอกสาร Word พร้อมกัน
  • ผสานและรวมไฟล์ Word หลาย ๆ ไฟล์ในโฟลเดอร์เข้าด้วยกันตามลำดับที่คุณต้องการ
  • แยกเอกสารปัจจุบันออกเป็นเอกสารแยกตามหัวข้อตัวแบ่งส่วนหรือเกณฑ์อื่น ๆ
  • แปลงไฟล์ระหว่าง Doc และ Docx, Docx และ PDF ชุดเครื่องมือสำหรับการแปลงและการเลือกทั่วไปและอื่น ๆ ...
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (15)
ได้รับคะแนน 4.5 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Tentei e não funcionou, so da que parou de ฟันซิโอนาร์
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันลองแล้วและใช้งานได้ดี!
ฉันแค่อยากรู้ว่า - ฉันสามารถทำสิ่งเดียวกันได้ไหม - แต่ไม่ใช่ทั้งย่อหน้า แต่เป็นประโยคที่มีคำสองสามคำที่ฉันตั้งขึ้น - เช่น 10 คำ?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มันส่งข้อผิดพลาดในการคอมไพล์: ข้อผิดพลาดทางไวยากรณ์ รหัสคือ 100% เป็นตัวอย่าง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

ขอบคุณที่ช่วย

แต่ฉันจะค้นหาประโยคเดียวกันในข้อความของฉันได้อย่างไร

ความนับถือ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี



ขอบคุณที่ช่วย



แต่ฉันจะค้นหาประโยคเดียวกันในข้อความของฉันได้อย่างไร



ความนับถือ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีเอกสารที่ต้องดำเนินการยาวมาก โค้ดด้านบนจะใช้เวลาอย่างน้อย 100 วันจึงจะเสร็จสิ้นและบล็อกทุกอย่างขณะทำงาน ผู้ร้ายหลักคือ "Set xRng = .Paragraphs(J).Range" ซึ่งช้ามาก ฉันทำเวอร์ชันอื่นซึ่งทำงานในเวลาเพียง 4 ชั่วโมงและนำเสนอรายงานอย่างต่อเนื่องเกี่ยวกับสถานะการประมวลผลและเวลาที่จะสิ้นสุด (หากต้องการดูรายงานแบบเรียลไทม์ คุณต้องเปิด "หน้าต่างทันที" โดยกด Ctrl+G ในหน้าต่าง Microsoft Visual Basic for Applications) โค้ดใช้งานได้ดี เว้นแต่จะคาดการณ์ว่าจะสิ้นสุดระยะเวลานานกว่าที่เป็นจริง กรณี (ขึ้นอยู่กับเอกสาร) รหัสมีดังนี้:

ไฮไลต์ย่อย ()
เวลาเริ่มต้นสลัว วินาทีที่ผ่านไปตามวันที่
วินาทีสลัวต่อการเปรียบเทียบเป็นสองเท่า
Dim I, J, PC, TotalComparisons, comparisonsDone, C, secondsToFinish As Long
Dim xRngFind, xRng เป็นช่วง
Dim xStrg, minutesToFinish เป็นสตริง
หรี่ปัจจุบันParag, nextParag As Paragraph
'Options.DefaultHighlightColorIndex = wdYellow
Application.ScreenUpdating = เท็จ
ด้วย ActiveDocument
เวลาเริ่มต้น = ตอนนี้ ()
C = 0
พีซี = .Paragraphs.Count
TotalComparisons = CLng((PC * (PC + 1)) / 2)
ตั้งค่า currentParag = .Paragraphs(1)
สำหรับฉัน = 1 ถึงพีซี - 1
'Debug.Print "กำลังประมวลผลย่อหน้า" & I & " จากทั้งหมด " & PC & " " & currentParag.Range.Text
'Debug.Print เลน (currentParag) & currentParag
ถ้า currentParag.Range.HighlightColorIndex <> wdYellow แล้ว
ถ้า currentParag.Range.HighlightColorIndex <> wdBrightGreen แล้ว
ตั้งค่า nextParag = currentParag
สำหรับ J = ฉัน + 1 ถึง PC
ตั้งค่า nextParag = nextParag.Next
ถ้า currentParag.Range.Text = nextParag.Range.Text แล้ว
currentParag.Range.HighlightColorIndex = wdBrightGreen
nextParag.Range.HighlightColorIndex = wdYellow
Debug.Print "พบแล้ว !!" & " I = " & I & " J = " & J & nextParag.Range.Text
End If
ต่อไป
End If
End If
กิจกรรม
การเปรียบเทียบเสร็จสิ้น = PC * (I - 1) + (J - I)
วินาทีที่ผ่านไป = DateDiff("s", StartTime, Now())
secondsPerComparison = CLng (SecondsElapsed) / การเปรียบเทียบเสร็จสิ้น
secondsToFinish = CLng (secondsPerComparison * (การเปรียบเทียบทั้งหมด - การเปรียบเทียบเสร็จสิ้น))
minutesToFinish = รูปแบบ (secondsToFinish / 86400, "hh:mm:ss")
elapsedTime = รูปแบบ (SecondsElapsed / 86400, "hh:mm:ss")
Debug.Print "เสร็จสิ้นการประมวลผลย่อหน้า" & I & " ของ " & PC & ". Elapsed time = " & elapsedTime & ". Time to finish = " & minutesToFinish
ตั้งค่า currentParag = currentParag.Next
ต่อไป
จบด้วย
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ท่านครับ ขอบคุณและขอให้มีลมดีๆ เข้ามาในชีวิต
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก มันทำงานได้อย่างสมบูรณ์และรวดเร็วมาก !

พอล (จากฝรั่งเศส)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ คุณช่วยชีวิตฉันไว้สองครั้งแล้ว งานนี้เหมือนมายากล
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ขอบคุณมากสำหรับรหัสนี้ เมื่อฉันพยายามใช้งานครั้งแรก มีข้อผิดพลาดทางไวยากรณ์ที่ปรากฏขึ้นอย่างต่อเนื่อง แต่เมื่อดูโค้ดด้านบนและโค้ดนี้แล้ว ฉันพบวิธีทำให้มันใช้งานได้ และฉันคิดว่าอาจช่วยคนอื่นได้: (เพียงทำตามคำแนะนำด้านบน แต่ให้คัดลอกและวางสิ่งนี้แทน) หากคุณพบว่าโค้ดของคุณมี ข้อผิดพลาดทางไวยากรณ์เหมือนของฉัน

พีซี = .Paragraphs.Count
TotalComparisons = CLng((PC * (PC + 1)) / 2)
ตั้งค่า currentParag = .Paragraphs(1)
สำหรับฉัน = 1 ถึงพีซี - 1
'Debug.Print "กำลังประมวลผลย่อหน้า" & I & " จากทั้งหมด " & PC & " " & currentParag.Range.Text
'Debug.Print เลน (currentParag) & currentParag
ถ้า currentParag.Range.HighlightColorIndex <> wdYellow แล้ว
ถ้า currentParag.Range.HighlightColorIndex <> wdBrightGreen แล้ว
ตั้งค่า nextParag = currentParag
สำหรับ J = ฉัน + 1 ถึง PC
ตั้งค่า nextParag = nextParag.Next
ถ้า currentParag.Range.Text = nextParag.Range.Text แล้ว
currentParag.Range.HighlightColorIndex = wdBrightGreen
nextParag.Range.HighlightColorIndex = wdYellow
Debug.Print "พบแล้ว!!" & amp; " ฉัน = " & amp; ฉัน & amp; " เจ = " & amp; เจ & amp; nextParag.Range.Text
End If
ต่อไป
End If
End If
กิจกรรม
การเปรียบเทียบเสร็จสิ้น = PC * (I - 1) + (J - I)
วินาทีที่ผ่านไป = DateDiff("s", StartTime, Now())
secondsPerComparison = CLng (SecondsElapsed) / การเปรียบเทียบเสร็จสิ้น
secondsToFinish = CLng (secondsPerComparison * (การเปรียบเทียบทั้งหมด - การเปรียบเทียบเสร็จสิ้น))
minutesToFinish = รูปแบบ (secondsToFinish / 86400, "hh:mm:ss")
elapsedTime = รูปแบบ (SecondsElapsed / 86400, "hh:mm:ss")
Debug.Print "เสร็จสิ้นการประมวลผลย่อหน้า" & amp; ฉัน & amp; " ของ " & amp; พีซี & แอมป์; ". เวลาที่ผ่านไป = " & amp; เวลาที่ผ่านไป & amp; ". เวลาจบ = " & amp; นาทีToFinish
ตั้งค่า currentParag = currentParag.Next
ต่อไป
จบด้วย
ย่อยสิ้นสุด
ได้รับคะแนน 4.5 จาก 5
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ลองทำสิ่งนี้กับหนังสือของฉันใน MS Word อย่างแรก มันใช้ไม่ได้เพราะฉันมีสัญลักษณ์แสดงหัวข้อย่อย ฉันลบออกแล้วพบเพียง 2 อินสแตนซ์ "หน้าว่าง" และ "สารบัญ" ฉันจงใจทำซ้ำหลายประโยค และไม่พบมาโครนี้ ขอบคุณที่พยายาม แต่ฉันจะบอกว่ามันไม่ได้ผล
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก บทความที่มีค่ามาก ช่วยฉันด้วยการทำสำเนาและวางย่อหน้า! คุณยอดเยี่ยมมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ใครก็ได้โปรดแนะนำให้ฉันเตรียมมาโครใน ms word เพื่อค้นหาข้อผิดพลาดในย่อหน้า
เช่น:- "และหรือ" "ว่า" "ของ" "ประโยคสิ้นสุดโดยไม่มีจุด (.)" "ประโยคใหม่เริ่มต้นด้วยตัวพิมพ์ใหญ่เริ่มต้นโดยไม่สิ้นสุดการส่ง"
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี mình chạy đoạn code trên nhưng không thấy ra kết quả giống bài viết, mình dùng word 2019, การสนับสนุนโฆษณา giúp mình nhé 
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
คุณช่วยฉันหน่อยได้ไหม มันใช้งานไม่ได้ คุณช่วยได้ไหมhttps://1drv.ms/w/s!Aja8bo-tfhqb-FVWcGUyvYPv07cX?e=lgJ4i1
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ