kopieren Bereich von Zellen und einfügen in die erste leere Zeile effektiver code? Excel
Ich habe ein Makro, das eine Auswahl von Zellen aus "Neue Suche" und fügen Sie die Auswahl, um die erste offene Zelle in der "Vergangenheit" ich denke, dass mein code ist sehr ineffektiv. Hat jemand irgendwelche Ideen, wie kann ich diese verbessern?
Sub Macro5()
Range("A3:J3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Past Searches").Select
Range("A1").End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Worksheets("New Searches").Activate
Application.CutCopyMode = False
End Sub
- Deinen code sauberer und effizienter, wenn Sie loswerden
.Select
und.Activate
. Lesen Sie den Hinweis am Ende dieser Antwort, wie das geht: Kopieren-Einfügen-Makro... - Hinzufügen zu dem, was @HeadofCatering hat gesagt, check out
this Antwort, die hat Methoden, um zu vermeiden Select
- die Copy-Paste-Makro... Antworten auch links zu den Frage Sid beantwortet. (Great minds!) Chris Nielsen ' s Antwort (die akzeptierte Antwort) hat auch viele nützliche Infos.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, Sie nicht zu verwenden .Wählen Sie oder .Aktivieren Sie auf Zellen/Arbeitsblätter, die Sie Bearbeiten, nur verweisen Sie Sie direkt. Das kann wirklich verlangsamen den code.
Den .Copy-Methode kann ein parameter Destination, so dass Sie nicht haben, um zu verwenden .Fügen Sie woanders.
Auch, die .Die Eigenschaft "Ende" ist nicht sehr zuverlässig. Es ist besser, verwenden Sie statt UsedRange.
Können Sie das tun, ziemlich viel in nur 1 Zeile.
A3:J3
und nicht die Zeilen unterhalb der ersten Zeile?Fabio danke für den Hinweis mich in die richtige Richtung, hätte ich nicht in der Lage zu drehen, dass Chaos zu prägnanten code.
Endete dies zu tun, was ich tun muss.
Könnten Sie dies auch tun, so brauchen Sie nicht numofrows?