Zusammenführen von Excel-Arbeitsblättern zu einem Arbeitsblatt
Okay, ich habe versucht, nach ähnlichen Fragen zu suchen, aber ich habe nicht viel von dem verstanden, was diskutiert wurde, da es das erste Mal ist, dass ich den VBA-Editor von Excel betrachte.
In einfachen Worten, ich habe 2 Tabellen: "Sheet1" und "Sheet2"
Blatt1:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
Blatt 2:
A B
1 Header1 Header2
2 Text3 Info3
3 Text4 Info4
Und ich hätte gerne ein Makro, um die beiden Blätter zu einem neuen Blatt (Sheet3) zusammenzuführen:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
4 Text3 Info3
5 Text4 Info4
Ich habe versucht, ein Makro aufzuzeichnen und für die spätere Verwendung zu speichern. Dazu habe ich ein neues Blatt erstellt, alles von Blatt1 nach Blatt3 kopiert / eingefügt und dann alle Informationen mit Ausnahme der Überschriften von Blatt2 nach Blatt3 kopiert.
Das Makro funktioniert für diese Daten, aber ich habe festgestellt, dass der von Excel generierte Code die Zelle A4 (hier) auswählt, bevor die Daten eingefügt werden. Während dies für diese Daten funktioniert, würde es nicht funktionieren, wenn sich die Anzahl der Datensätze in jedem Blatt von Zeit zu Zeit ändert. Grundsätzlich gilt,
1) Ich habe mich gefragt, ob es eine Funktion gibt, die automatisch zur letzten relevanten Zelle wechselt, bevor der nächste Datensatz eingefügt wird (in diesem Beispiel Zelle A4, und wenn ich eine weitere Tabelle habe, dann Zelle A6).
2) Ich habe die Funktion "ActiveCell.SpecialCells (xlLastCell) .Select" gesehen (aktiviert, wenn ich Strg + Ende benutze), aber das bringt mich zum Ende des Blattes. Nachdem ich diese Funktion verwendet habe, benötige ich eine ähnliche Funktion wie die Pfeiltasten "Home" und "Down", damit sie am besten funktioniert.
Eine dieser Optionen wäre gut für mich. ^ _ ^
Hier ist mein aktueller VBA-Code, der mit dem Macro Recorder in Excel 2010 aufgezeichnet wurde:
Sub Collate_Sheets()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = "Sheet3"
Sheets("Sheet1").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
ActiveCell.SpecialCells(xlLastCell).Select
' I need to select one cell below, and the cell in column A at this point
Sheets("Sheet2").Select
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
End Sub
Ich hoffe, ich habe keine nützlichen Informationen vergessen. Lass es mich wissen, wenn ich es getan habe!