Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: frage zu EntireRow

frage zu EntireRow
18.06.2004 21:35:11
chris
Hallo Exceller,
eine frage und zwar wo ist der unterschied zwischen
"Rows(i).EntireRow.Delete" und "Rows(i).Delete"
Frage aus dem Grund weil ich gerade auf den befehl EntireRow gestoßen bin und nur solche Beispiele finde wo dieser Befehl vorhanden ist wo er eigentlich nicht unbedingt notwendigt ist weil es auch ohne ihn funktioniert ?
Danke für eure Tipps gruß Christian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: frage zu EntireRow
K.Rola
Hallo,
Rows(i) ist schon eine ganze Zeile, deshalb reicht Rows(i).delete
Hast du dagegen ein Zelle wie [a1] oder cells(i,1), muss es heißen:
[a1].entireRow.delete oder cells(i,1).entireRow.delete
Gruß K.Rola
AW: frage zu EntireRow
PeterW
Hallo Christian,
ist schon erstaunlich (bis erschreckend), was die VBA-Hilfe so liefert:
"In diesem Beispiel wird der Wert für die erste Zelle der Zeile gesetzt, die die aktive Zelle enthält. Das Beispiel muss von einem Arbeitsblatt aus ausgeführt werden.
ActiveCell.EntireRow.Cells(1, 1).Value = 5"
Das ließe sich mit
Cells(ActiveCell.Row, 1) = 5
auch einfacher darstellen. Vermutlich gehen die Programmierer von MS davon aus, dass der Rekorder vernünftigen Code aufzuzeichnen in der Lage ist.
Gruß
Peter
Anzeige
AW: frage zu EntireRow
19.06.2004 00:26:50
chris
Vielen Dank euch beiden !
grüße Chris
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Umgang mit EntireRow in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.

  2. Erstelle ein neues Modul: Rechtsklicke im Projektfenster auf "VBAProject" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein, um eine Zeile mit EntireRow zu löschen:

    Sub DeleteEntireRowExample()
       Dim i As Integer
       i = 1 ' Zeile, die gelöscht werden soll
       Rows(i).EntireRow.Delete
    End Sub
  4. Führe den Code aus: Klicke im VBA-Editor auf das grüne "Play" Symbol oder drücke F5.

  5. Überprüfe das Ergebnis: Die angegebene Zeile sollte nun gelöscht sein.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"
    Dieser Fehler tritt auf, wenn Du versuchst, eine Zeile zu löschen, die nicht existiert. Überprüfe, ob der Index i innerhalb des gültigen Bereichs liegt.

  • Problem mit ActiveCell
    Wenn Du ActiveCell.EntireRow.Delete verwendest, stelle sicher, dass eine Zelle aktiv ist, bevor Du den Code ausführst.


Alternative Methoden

  • Verwendung von Cells: Du kannst auch Cells(i, 1).EntireRow.Delete verwenden, um die gesamte Zeile einer bestimmten Zelle zu löschen. Dies ist hilfreich, wenn Du die Zeile dynamisch basierend auf einer Zelle löschen möchtest.

  • Direktes Löschen: Wenn Du eine Zeile direkt ohne EntireRow löschen möchtest, kannst Du einfach Rows(i).Delete verwenden. Dies hat den gleichen Effekt, wenn die Zeile bereits ausgewählt ist.


Praktische Beispiele

  1. Löschen der 5. Zeile:

    Sub DeleteFifthRow()
       Rows(5).Delete
    End Sub
  2. Löschen mehrerer Zeilen (z. B. Zeilen 2 bis 4):

    Sub DeleteMultipleRows()
       Rows("2:4").Delete
    End Sub
  3. Löschen einer Zeile basierend auf einer Bedingung:

    Sub DeleteRowIfConditionMet()
       Dim i As Integer
       For i = 1 To 10
           If Cells(i, 1).Value = "" Then
               Rows(i).EntireRow.Delete
           End If
       Next i
    End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False vor dem Löschen von Zeilen, um das Flackern des Bildschirms zu vermeiden und die Ausführungsgeschwindigkeit zu erhöhen. Vergiss nicht, es am Ende mit Application.ScreenUpdating = True wieder zu aktivieren.

  • Sei vorsichtig beim Löschen: Überlege, ob Du die Zeile möglicherweise später noch benötigst. Eine Möglichkeit, dies zu umgehen, ist das Kopieren der Zeile in einen anderen Bereich, bevor Du sie löschst.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Rows(i).Delete und Rows(i).EntireRow.Delete?
Beide Befehle führen das gleiche Ergebnis herbei. EntireRow ist überflüssig, wenn Du bereits mit Rows(i) arbeitest, da Rows(i) bereits die gesamte Zeile referenziert.

2. Kann ich mehrere Zeilen mit einer Schleife löschen?
Ja, Du kannst eine Schleife verwenden, um durch die Zeilen zu iterieren und Bedingungen zu prüfen. Achte darauf, dass Du beim Löschen von Zeilen von unten nach oben iterierst, um Indexprobleme zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige