Ich hoffe, ich habe eine gründliche Suche nach Antworten auf diese jedoch nach dem Versuch, Stück Dinge zusammen, ich konnte die Lösung nicht sehen. Ich versuche, Daten von einem Arbeitsblatt zu einem anderen zu kopieren, basierend auf Benutzereingaben der Zeile, um damit zu beginnen. Wenn sie zum Beispiel "9" eingeben, füge ich einen Buchstaben hinzu, der die Spalte angibt, und beginne mit dem Kopieren von Daten in eine andere Zelle. Hier ist der Code:Excel VBA kopieren Daten von einem Arbeitsblatt zu einem anderen aus der Benutzereingabe auf einem anderen Blatt
Sub Transfer()
Dim shSource As Worksheet
Dim cellValue As Range
Dim formatedCellBegin As Range
Dim formatedCellEnd As Range
Set shSource = ThisWorkbook.Sheets("Sheet1") 'Get info from user input sheet
Set cellValue = shSource.Cells(4, "H") 'User input taken from "H4" on sheet1 received in regards to what row to start transfer
Set formatedCellBegin = "J" & cellValue 'Add J to the that row to get the cell to start at
Set formatedCellEnd = "K" & cellValue 'End at cell K - (whatever they pick)
'Sheet 12 is the sheet with all the invoice info
'Sheet 11 is the sheet to put all the info
Sheets("Sheet12").Range("formatedCellBegin:formatedCellEnd").Copy Destination:=Sheets("Sheet11").Range("B20")
End Sub
Vielen Dank für Ihre Hilfe
Ich glaube, Sie wollen, dass letzte Zeile 'Sheets zu sein ("Sheet12") Range (formatedCellBegin, FormatedCellEnd) .Copy ...', da 'formatedCellBegin.. Die Adresse sollte so lauten wie "J12". Wenn Sie das Makro mit "F8" durchlaufen, wenn es diese beiden Bereiche einstellt, geben Sie im Direktfenster (drücken Sie STRG + G, um zu sehen) "formatedCellBegin.address" ein, um sicherzustellen, dass es richtig eingestellt ist. – BruceWayne
@Kevin Smith siehe Code und Erklärung in meiner Antwort unten –