vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Word   |   VB-Versionen: VBA27.02.15
Aus einer Word-Tabelle anhand einer 'Ident'-Spalte doppelte Zeilen entfernen

Im Tipp wird eine Prozedur vermittelt, die alle doppelten Zeilen anhand einer Spalte mit Key-Werten aus der Tabelle entfernt.

Autor:   Dietrich HerrmannBewertung:  Views:  6.248 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

Wenn man das Problem hat, aus einer eventuell sehr großen Tabelle Zeilen entfernen zu müssen, die gemäß von Key-Werten in einer Spalte identifiziert werden können, kann dies mit der im folgenden gezeigten Prozedur erreicht werden.

Voraussetzung ist, dass die Tabelle nach der Spalte mit den Key-Werten sortiert sein muss.

Die Prozedur:

' Alle Zeilen, die doppelte Einträge in einer 'Ident'-Spalte enthalten, löschen
' tb.. die Word-Tabelle
' sp.. die Spalte (sortiert!) mit den Vergleichswerten
' anfZ.. die Zeile, mit der begonnen werden soll (...Überschrift)
Sub DistinctTable(tb As table, sp As Integer, Optional anfZ As Integer = 1)
  Dim i As Long
  Dim anzRows As Long
  Dim lastValue As String
  Dim actValue As String
 
  anzRows = tb.Rows.Count     ' Anzahl der Tabellenzeilen
  lastValue = ""
  i = anfZ
  Do While i < anzRows
    actValue = tb.Rows(i).Cells(sp).Range.text
 
    ' einkürzen eventuell nötig wegen Tabellenzellen-Notation
    actValue = Left(actValue, Len(actValue) - 2)   
    If lastValue = "" Or lastValue <> aktValue Then
      lastValue = actValue    ' Vergleichswert hat sich geändert
      i = i + 1
    Else
      tb.Rows(i).Delete       ' löschen einer 'Duplikat'-Zeile
      anzRows = anzRows - 1
    End If
    DoEvents
  Loop
End Sub

Zum Testen:

Sub testDistinct()
  DistinctTable ActiveDocument.Tables(1), 1
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.