Excel - Ein Makro zum Kopieren von Zeilen und Spalten

Problem

Ich arbeite an einem Makro, um aus einer Arbeitsmappe (Blatt) zu kopieren und in eine andere Arbeitsmappe (Blatt) einzufügen.

Office 2007 und Windows XP

In der ersten Arbeitsmappe habe ich alle Daten, die nach reqs. gefiltert wird. Wie kann man in einem Makro festlegen, dass die Ergebnisdatensätze kopiert werden sollen? Diese Ergebnissätze ändern sich ständig.

Ich zeichne ein Makro mit diesen Schritten auf:

  • 1. Öffnen Sie die Datei output.xlsx (Zielarbeitsmappe).
  • 2. Strg + A (um alle bereits vorhandenen Daten auszuwählen) und löschen (alle)
  • 3. Kopieren Sie die Ergebnisdatensätze der Quellarbeitsmappe (input.xlsm)
  • 4. Inhalte in die Zielarbeitsmappe einfügen
  • 5. Erstellen Sie eine Arbeitsmappe und beenden Sie die Makroaufnahme

Der Rest des Makros funktioniert einwandfrei. Das Problem besteht darin, wie der Bereich der Ergebnisdatensätze, den Sie als dynamisch bezeichnen können, festgelegt wird.

Unten ist das Makro, aber sein automatisch generierter Code:

 Sub Macro1 () '' Macro21 Macro '' Workbooks.Open Filename: = _ "O: dataorderrefList-output.xltx" _, Editable: = True Selection.CurrentRegion.Select Selection.Clear Range ("A1"). Wählen Sie Windows ( "ReferenceList.xlsm"). Aktivieren Sie Selection.CurrentRegion.Select Selection.Copy Windows ("refList-output.xltx"). Aktivieren Sie Selection.PasteSpecial Paste: = xlPasteColumnWidths, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" A1 "). Wählen Sie Application.CutCopyMode = False ActiveWorkbook.Save Windows (" ReferenceList.xlsm "). Aktivieren Sie Range (" Table_Query_from_MS_Access_Database [#Headers, [Order No]] "). Wählen Sie End Sub 

Es funktioniert gut, aber ich muss die Auswahl auch auf der Grundlage von Ergebnisdatensätzen und anderen Formatierungen treffen.

Lösung

Habe meinen Vorschlag ausprobiert. Wenn Sie NUR eine gefilterte Datenauswahl auswählen, werden die ausgeblendeten Zellen ebenfalls eingeblendet (aufgrund der Filterung ausgeblendet). Stattdessen müssen Sie die Eigenschaft "specialcells" verwenden, wie von mir vorgeschlagen. können Sie auf dieser Basis ändern.

Es ist auch vorgesehen, OHNE die verschiedenen Fenster zu aktivieren oder verschiedene Bereiche auszuwählen.

Ich habe eine Alternative für einen bestimmten Teil Ihres Makros angegeben

 ThisWorkbook.Worksheets ("sheet1"). UsedRange.SpecialCells (xlCellTypeVisible) .Copy Workbooks ("book4"). Worksheets ("sheet1"). Range ("A1"). PasteSpecial Paste: = xlPasteValues, Paste: = xlPasteColumnWid : = xlPasteFormats _, Paste: = xlPasteColumnWidths 

Wenn es sich bei den beiden Büchern um gespeicherte Bücher handelt, sollten Sie "book4.xls" oder "book4.xlsm" verwenden. "Diese Arbeitsmappe bezeichnet das Modul der Arbeitsmappe, in dem das Makro geparkt ist. Sie können versuchen, das Makro zu ändern.

Hinweis

Danke an venkat1926 für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps