Ich habe die verschiedenen in diesem Forum genannten Methoden verwendet und keine scheinen zu funktionieren, also werde ich versuchen, genauer zu sein.Excel 2013: Verwenden Sie Makro, um Daten von einem Blatt zu einem anderen innerhalb derselben Arbeitsmappe zu kopieren und anschließend hinzuzufügen
Ich habe eine Arbeitsmappe namens LIBRARY.xlsm.
Dieses Arbeitsbuch enthält zwei Arbeitsblätter: CALCULATOR und CUTS.
Das Arbeitsblatt CALCULATOR enthält zwei Tabellen: INPUT und OUTPUT.
Ich gebe Daten in INPUT ein, Werte werden berechnet und automatisch in OUTPUT eingegeben.
Ich erstellen eine Schaltfläche unter OUTPUT mit Makro, um Daten in OUTPUT zu Arbeitsblatt CUTS zu kopieren.
Ich gebe neue Daten in INPUT ein, die dann OUTPUT aktualisiert.
Jetzt möchte ich diese neuen Daten in CUTS kopieren, ohne vorherige Daten zu überschreiben oder zu löschen.
Da dieses Projekt in 5 Abschnitte unterteilt ist, sollte ich fünf Tabellen im Arbeitsblatt CUTS haben, die ich dann ausdrucken kann.
Die INPUT-Tabelle umfasst Zellen A1: M31, was egal ist (ich kopiere das nicht).
Die OUTPUT-Tabelle belegt die Zellen O6: S26. Dies sind die Daten, die kopiert werden müssen.
Platzierung in Arbeitsblatt CUTS kann bei Zelle A1 beginnen (was bedeutet, dass die Tabelle den Bereich A1: E20 hat). Ich möchte eine Spalte überspringen und dann den nächsten Datensatz platzieren. Daher sollte der nächste Datensatz bei G1 (G1: K20), dann bei M1: Q20 usw. beginnen. Vielleicht gehen Sie nur drei Tabellen über und dann beginnen die nächsten drei unten (getrennt durch Reihe).
Hier ist der Code versucht zu verwenden. Problem ist, dass es die Werte nicht behält und die vorherigen Daten überschreibt.
Sub Create_CUTS()
Dim sourceSheet As Worksheet
Dim sourceRange As Range
Dim sourceRows As Integer
Set sourceSheet = Worksheets("CALCULATOR")
sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))
Set sourceRange = sourceSheet.Range("O6:S26" & sourceRows)
Dim targetSheet As Worksheet
Dim targetRange As Range
Dim targetRows As Integer
Set targetSheet = Worksheets("CUTS")
targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))
Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":A" & targetRows + 1 + sourceRows)
sourceRange.Copy Destination:=targetRange
End Sub
Vielen Dank, jeder -Grumps