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

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

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

ลบแถวที่ซ้ำกันออกจากตารางใน Word


ลบแถวที่ซ้ำกันออกจากตารางใน Word

1. วางเคอร์เซอร์ไว้ที่ตารางที่คุณต้องการลบแถวที่ซ้ำกันออกจากนั้นกด Alt + F11 คีย์เพื่อเปิดใช้งานไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2 คลิก สิ่งที่ใส่เข้าไป > โมดูล เพื่อสร้างโมดูลใหม่
doc ลบแถวที่ซ้ำกัน table01

3. คัดลอกรหัสด้านล่างและวางลงในรหัสใหม่ โมดูล ต้นฉบับ

VBA: ลบแถวที่ซ้ำกันออกจากตารางใน Word

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = xRow.Text
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = xRow.Text
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

doc ลบแถวที่ซ้ำกัน table02

4 กด F5 เพื่อรันโค้ดจากนั้นแถวที่ซ้ำกันทั้งหมดจะถูกลบออก
doc ลบแถวที่ซ้ำกัน table03

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

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = UCase(xRow.Text)
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = UCase(xRow.Text)
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

หากคุณต้องการลบแถวที่ซ้ำกันในตารางทั้งหมดของเอกสารให้วางเคอร์เซอร์ไว้ที่ตำแหน่งใดก็ได้ของเอกสารนอกตารางจากนั้นใช้หนึ่งในรหัสด้านบน


เรียกดูแบบแท็บและแก้ไขเอกสาร Word / สมุดงาน Excel หลายรายการเช่น Firefox, Chrome, Internet Explore 10!

คุณอาจคุ้นเคยกับการดูหน้าเว็บหลายหน้าใน Firefox / Chrome / IE และสลับไปมาระหว่างหน้าเว็บเหล่านั้นโดยคลิกที่แท็บที่เกี่ยวข้อง ที่นี่ Office Tab สนับสนุนการประมวลผลที่คล้ายกันซึ่งช่วยให้คุณสามารถเรียกดูเอกสาร Word หรือสมุดงาน Excel หลายรายการในหน้าต่าง Word หรือหน้าต่าง Excel และสลับไปมาระหว่างกันได้อย่างง่ายดายโดยคลิกที่แท็บ
คลิกเพื่อทดลองใช้ Office Tab ฟรี!

เรียกดูเอกสารหลายคำในหน้าต่างเดียวเป็น Firefox

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

 

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

  • การดำเนินการที่ซับซ้อนและซ้ำ ๆ สามารถดำเนินการครั้งเดียวในไม่กี่วินาที
  • แทรกภาพหลาย ๆ โฟลเดอร์ลงในเอกสาร Word พร้อมกัน
  • ผสานและรวมไฟล์ Word หลาย ๆ ไฟล์ในโฟลเดอร์เข้าด้วยกันตามลำดับที่คุณต้องการ
  • แยกเอกสารปัจจุบันออกเป็นเอกสารแยกตามหัวข้อตัวแบ่งส่วนหรือเกณฑ์อื่น ๆ
  • แปลงไฟล์ระหว่าง Doc และ Docx, Docx และ PDF ชุดเครื่องมือสำหรับการแปลงและการเลือกทั่วไปและอื่น ๆ ...
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (0)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ