2016-04-08 6 views
1

ich dieses Makro schrieb eine Excel-Tabelle in eine Word-Tabelle zu exportieren:ein Blatt zu einem Worttabelle exportieren gibt ein seltsames Ergebnis

Private Sub Export_Click()  'export to word table 
Dim objWord As Object 
Dim objDoc As Object 
Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 
Sheets("export").Visible = True  'make hidden sheet visible 
Set objDoc = objWord.documents.Add() 
LastRow = Sheets("export").Range("$G$1").Value 'number of lines to export 
For i = 1 To LastRow 
Sheets("export").Rows(i).EntireRow.Copy 
objWord.Selection.Paste 
Next i 
Application.CutCopyMode = False   'clear the clipboard 
Sheets("export").Visible = 2  'hide the sheet 
End Sub 

Das Ergebnis ist eine seltsames formatiert ist table mit Zellen breite und breiter in Richtung der immer unten, während das Originalblatt die gleiche Formatierung für alle Zeilen und Spalten aufweist.

Wie kann ich das lösen?

+0

1) Anstatt die gesamte Zeile zu kopieren, können Sie einfach die erforderlichen Spalten kopieren. 2) create table in objword wie 'objDoc.Tables.Add objRange, intNoOfRows, intNoOfColumns' 3) Zuweisen objdoc.tables' Setzen Sie objTable = objDoc.Tables (1) 'Schleife durch die Tabelle und fügen Sie die Spalten- und Zeileninhalte ein . –

Antwort

1

Anstatt die Tabelle Zeile für Zeile zu exportieren, können Sie die gesamte Tabelle auf einmal kopieren und einfügen.

Sub Export_Click() 
    'export to word table 
    Dim objWord As Object 
    Dim objDoc As Object 
    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = True 
    Sheets("export").Visible = True  'make hidden sheet visible 
    Set objDoc = objWord.Documents.Add() 
    lastrow = Sheets("export").Range("$G$1").Value 'number of lines to export 

    Range("A1:F" & lastrow).Copy 'mention the number of columns you want to copy 

    With objWord 
     .Documents.Add 
     .Selection.Paste 
     .Visible = True 
    End With 

    Application.CutCopyMode = False   'clear the clipboard 
    Sheets("export").Visible = 2  'hide the sheet 
End Sub 
+0

Danke, das scheint besser zu funktionieren. Nur ein kleines Problem ist, dass die Tabelle jetzt nicht innerhalb der Ränder liegt, sondern bis zum Ende der Seite reicht. –

+0

Wie kann ich den Tisch zwingen, in die Ränder zu passen? –

+0

@ L.Dutch - Ich habe Ihre Frage [hier] (http://stackoverflow.com/questions/37339623/forcing-a-table-to-fit-the-margins/37340704#37340704) beantwortet. Überprüfen Sie und lassen Sie mich wissen, ob es in Ordnung ist. – Mrig

Verwandte Themen