Excel - Zeilen auf Gesamtseite kopieren

Problem

Ich habe eine Excel-Tabelle mit 13 Arbeitsblättern. Die ersten 12 Arbeitsblätter sind Januar bis Dezember. Das 13. Arbeitsblatt ist insgesamt. Jedes Arbeitsblatt enthält identische Spalten und Zeilen.

In allen Arbeitsblättern gibt es ungefähr 10 Spalten wie Datum, Name, Adresse, Kontonummer, Abteilung, Name des Mitarbeiters usw.

Ich versuche, die Informationen in jedes Monatsarbeitsblatt einzugeben und die eingegebenen Daten automatisch in das Gesamtarbeitsblatt zu kopieren. Das Gesamtarbeitsblatt würde alle eingegebenen Daten enthalten. Ich hätte eine monatliche Aufschlüsselung, aber die Gesamtseite enthält alle Transaktionen.

Ich habe alle Arbeitsblätter eingerichtet, kann aber keinen Code für das Kopieren finden. Irgendwelche Vorschläge bitte?

Lösung

Versuche dies. Stellen Sie sicher, dass Sie vor dem Testen eine Sicherungskopie der Originaldatei erstellen

Annahmen.

  • 1. Die Blätter heißen Jan, Feb, ....
  • 2. Das Master-Blatt heißt Master
  • 3. Die Spalte 1 hat keinen leeren Wert (wird verwendet, um die maximale Anzahl von Zeilen zu ermitteln)
  • 4. Es gibt nicht mehr als 11 Spalten
  • 5. Das Masterblatt hat bereits eine Kopfzeile.

 Sub copyData () Dim maxRows As Long Dim maxCols As Integer Dim conSheet As String 'konsolidierter Blattname Dim lConRow As Long Dim maxRowCol As Integer' verwendet, um die maximale Anzahl von Zeilen zu finden maxCols = 11 months = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") maxRowCol = 1 conSheet = "Master" Sheets (conSheet) .Bereich auswählen ("A2") .Zellen auswählen (65536, 256) .Auswahl auswählen.Ende (xlDown) .MaxRows = Auswahl.Row Range ("A2", Auswahl) .Auswahl auswählen.ClearContents lConRow = 2 Für x = 0 bis Sheets.Count - 2 Sheets (Monate (x)). Wählen Sie Wenn ActiveSheet.AutoFilterMode Dann Cells.Select Selection.AutoFilter End Wenn Cells.Select Dim lastRow As Long lastRow = Cells (maxRows, maxRowCol) .End ( xlUp) .Row If (lastRow> 1) Then Range (Zellen (2, 1), Zellen (lastRow, maxCols). Select Selection.Copy Sheets (conSheet). Select Cells (lConRow, 1). Select Selection.PasteSpecial lConRow = Zellen (maxRows, maxRowCol) .End (xlUp) .Row lConRow = lSummaryRow + 1 End If If ActiveSheet.Name = "Dec "Dann Sub Next End Sub beenden 

Hinweis

Vielen Dank an rizvisa1 für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps