So kopieren Sie eine Zeile in Excel VBA

click fraud protection

Die Verwendung von VBA zum Programmieren von Excel ist nicht mehr so ​​beliebt wie früher. Es gibt jedoch immer noch viele Programmierer, die es bevorzugen, wenn sie mit Excel arbeiten. Wenn Sie einer dieser Menschen sind, ist dieser Artikel für Sie.

Kopieren einer Zeile in Excel VBA ist die Art von Dingen, für die Excel VBA wirklich nützlich ist. Beispielsweise möchten Sie möglicherweise eine Datei aller Ihrer Belege mit Datum, Konto, Kategorie, Anbieter, Produkt / Dienstleistung und Kosten werden zeilenweise eingegeben, sobald sie auftreten - ein Beispiel für die Weiterentwicklung der Buchhaltung anstelle von statische Buchhaltung. Dazu müssen Sie in der Lage sein, eine Zeile von einem Arbeitsblatt in ein anderes zu kopieren.

Ein Excel VBA-Beispielprogramm, das eine Zeile von einem Arbeitsblatt in ein anderes kopiert und der Einfachheit halber nur drei Spalten verwendet, enthält:

  • Eine Alpha-Spalte für Text
  • Eine numerische Spalte - Eine automatische Summe wird im Zielarbeitsblatt erstellt
  • Eine Datumsspalte - das aktuelle Datum und die aktuelle Uhrzeit werden automatisch ausgefüllt
instagram viewer

Überlegungen zum Schreiben von Excel VBA-Code

Um ein Ereignis auszulösen, das die Zeile kopiert, verwenden Sie den Standard - ein Schaltflächenformular-Steuerelement. Klicken Sie in Excel auf der Registerkarte Entwickler auf Einfügen. Wählen Sie dann das Schaltflächenformular-Steuerelement aus und zeichnen Sie die Schaltfläche an die gewünschte Stelle. Excel zeigt automatisch einen Dialog an, in dem Sie eine auswählen können Makro ausgelöst durch das Klickereignis der Schaltfläche oder um ein neues zu erstellen.

Es gibt verschiedene Möglichkeiten, die letzte Zeile im Zielarbeitsblatt zu finden, damit das Programm eine Zeile unten kopieren kann. In diesem Beispiel wird die Nummer der letzten Zeile im Arbeitsblatt beibehalten. Um die Nummer der letzten Zeile beizubehalten, müssen Sie diese Nummer irgendwo speichern. Dies kann ein Problem sein, da der Benutzer die Nummer möglicherweise ändern oder löschen kann. Um dies zu umgehen, platzieren Sie es in der Zelle direkt unter der Formularschaltfläche. Auf diese Weise ist es für den Benutzer nicht zugänglich. (Am einfachsten ist es, einen Wert in die Zelle einzugeben und dann die Schaltfläche darüber zu bewegen.)

Code zum Kopieren einer Zeile mit Excel VBA

Sub Add_The_Line () Dim currentRow As Integer Sheets ("Sheet1"). Wählen Sie currentRow = Range ("C2"). Wertzeilen (7). Wählen Sie Auswahl. Blätter kopieren ("Sheet2"). Zeilen auswählen (currentRow). ActiveSheet auswählen. Einfügen Dim theDate As Date theDate = Now () Cells (currentRow, 4) .Value = CStr (theDate) Cells (currentRow + 1, 3) .Activate Dim rTotalCell As Range Set rTotalCell = _ Sheets ("Sheet2"). Cells ( Reihen. Count, "C"). End (xlUp) .Offset (1, 0) rTotalCell = WorksheetFunction. Summe _ (Bereich ("C7", rTotalCell. Offset (-1, 0))) Blätter ("Sheet1"). Bereich ("C2"). Wert = currentRow + 1 End Sub 

Dieser Code verwendet xlUp, eine "magische Zahl" oder technisch eine aufgezählte Konstante, die von der End-Methode erkannt wird. Der Versatz (1,0) verschiebt sich einfach um eine Zeile in derselben Spalte, sodass der Nettoeffekt darin besteht, die letzte Zelle in Spalte C auszuwählen.

In Worten heißt es in der Erklärung:

  • Gehen Sie zur letzten Zelle in Spalte C (entspricht Ende + Abwärtspfeil).
  • Gehen Sie dann zurück zur letzten nicht verwendeten Zelle (entspricht dem End + Up-Pfeil).
  • Dann geh noch eine Zelle hoch.

Die letzte Anweisung aktualisiert den Speicherort der letzten Zeile.

VBA ist wahrscheinlich schwieriger als VB.NET, da Sie sowohl VB- als auch Excel-VBA-Objekte kennen müssen. Die Verwendung von xlUP ist ein gutes Beispiel für das Fachwissen, das für das Schreiben von VBA-Makros von entscheidender Bedeutung ist, ohne für jede von Ihnen codierte Anweisung drei verschiedene Dinge nachzuschlagen. Microsoft hat große Fortschritte bei der Aktualisierung des Visual Studio-Editors erzielt, damit Sie die richtige Syntax herausfinden können. Der VBA-Editor hat sich jedoch nicht wesentlich geändert.

instagram story viewer