Korrigiert die unregelmäßige Form von zusammengeführten Tabellen in MS Word 2007

1

Ich habe schon seit einiger Zeit nach einer Antwort darauf gesucht, aber ohne Erfolg, also hoffe ich, dass mir jemand hier helfen kann.

Ich habe kürzlich ein Dokument aus FineReader 12 nach Word exportiert. Das Dokument ist im Grunde eine 130 Seiten lange Tabelle. Der Tisch hat eine regelmäßige Form: 5 Spalten , keine zusammengeführten Zellen.

Als ich jedoch einzelne Tabellen zusammenführen (FineReader teilt sie seitenweise auf) Durch Löschen der Linien zwischen ihnen erhält die Tabelle eine unregelmäßige Form für jede Verbindung.

this.

Angesichts der schieren Anzahl von Tischen, die ich habe, Gibt es eine Möglichkeit, ihre Form insgesamt zurückzusetzen? Bisher muss ich die Spalten jeder Tabelle manuell anpassen, um sie an die anderen anzupassen.

Ich habe versucht, die Tabellen- und Spaltenbreite, den Zeilenumbruch usw. zurückzusetzen. Ich habe auch die gesamte Tabelle ausgewählt und aktiviert und dann das Kontrollkästchen "Tabellenüberschrift" für alle deaktiviert.

Das Konvertieren von Tabellen in Text und zurück funktioniert nicht, da einige Zellen Absatzumbrüche aufweisen, auf die später eingegangen werden soll.

MrVocabulary
quelle

Antworten:

0

Okay, ich erhielt eine Antwort von Paul Edstein alias macropod bei MS Office-Foren Das habe ich leicht modifiziert und es funktioniert jetzt wie Charme. Ich füge die Lösung hier ein, da sie für jeden, der mit OCR und so weiter arbeitet, Dutzende von Arbeitsstunden einspart.

Die Idee ist, ein Makro zu erstellen, das das Layout jeder Tabelle (und jeder Zelle, falls erforderlich) wie folgt umformatiert:

Sub FixTables()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Tbl As Table, i As Long
With ActiveDocument
    For Each Tbl In .Tables
        With Tbl
            With .Rows
                .LeftIndent = 0
                .WrapAroundText = False
                .Alignment = wdAlignRowCenter
            End With
            .TopPadding = 0
            .LeftPadding = 0
            .RightPadding = 0
            .BottomPadding = 0
            .AllowAutoFit = False
            .PreferredWidthType = wdPreferredWidthAuto
            If .Uniform Then
                .Columns(1).Width = CentimetersToPoints(1#)
                .Columns(2).Width = CentimetersToPoints(3.75)
                .Columns(3).Width = CentimetersToPoints(3.75)
                .Columns(4).Width = CentimetersToPoints(3.75)
                .Columns(5).Width = CentimetersToPoints(3.75)
            Else
                For i = 1 To .Range.Cells.Count
                    Select Case (i - 1 Mod 5) + 1
                        Case 1: .Range.Cells(i).Width = CentimetersToPoints(1#)
                        Case Else: .Range.Cells(i).Width = CentimetersToPoints(3.75)
                    End Select
                Next
            End If
    End With
    While .Tables.Count > 1
        .Tables(1).Range.Characters.Last.Next.Delete
    Wend
Next
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Der einzige Nachteil ist, dass die Ausführung mit nur 3 Tabellen in nur wenigen Sekunden erfolgt. Die Durchführung der Änderungen an einem Satz von 50 Tabellen dauerte jedoch ungefähr 15 Minuten. Dazu gehört das vorübergehende Deaktivieren der Bildschirmaktualisierung in Word und das Unterdrücken aller Warnungen (andernfalls werden Sie aufgefordert, die Änderungen jedes Mal zu speichern, wenn Word keinen RAM mehr hat).

bitte beachten Sie Da diese Lösung nur für 5 Spalten geeignet ist, müssen Sie sie entsprechend anpassen.

MrVocabulary
quelle