Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Worksheets().Rows().Select

Forumthread: VBA-Worksheets().Rows().Select

VBA-Worksheets().Rows().Select
25.05.2005 10:30:51
Alexander
Hallo Forum. Ich hab da ein neues Problem.
Das ist meine Code:
Public Deckblatt As Worksheet

Sub AddRowBySelection()
Set Deckblatt = ThisWorkbook.Worksheets("Deckblatt AUD")
Deckblatt.Unprotect
Deckblatt.Rows(20).Select
Selection.Insert (xlShiftDown)
Deckblatt.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Beim Ausführen kommt bei der Zeile "Deckblatt.Rows(20).Select" folgender Fehler:
Laufzeitfehler '1004':
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Weiß jemand Rat?
Danke im Voraus.
Gruß, Alex.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zusatz: VBA-Worksheets().Rows().Select
25.05.2005 10:35:00
Alexander
Wenn ich dann 'Debuggen' anklicke und die Zeile von Hand markier geht's.
Zusatz: VBA-Worksheets().Rows().Select
25.05.2005 10:37:42
Alexander
Der Fehler tritt auch auf anderen Worksheets auf.
AW: Zusatz: VBA-Worksheets().Rows().Select
25.05.2005 10:49:12
Hajo_Zi
Hallo Alex,
auf select kann in VBA zu 99% verzichtet werden. Dann ist Dein Problem gelöst.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Zusatz: VBA-Worksheets().Rows().Select
25.05.2005 10:52:09
Alexander
Wie kann ich auf das select hier verzichten?
Deckblatt.Rows(20).Insert o.T.
25.05.2005 10:50:22
Kurt
..
AW: VBA-Worksheets().Rows().Select
25.05.2005 10:57:10
Hajo_Zi
Hallo Alex,
bei dem Level dürfte das doch kein Problem sein?

Sub AddRowBySelection()
With ThisWorkbook.Worksheets("Deckblatt AUD")
.Unprotect
.Rows(20).Insert (xlShiftDown)
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: VBA-Worksheets().Rows().Select
25.05.2005 10:59:01
Alexander
Ich hab vergessen mein Hirn einzuschalten!
Auf die einfachste Lösung komm ich wieder nicht. :-)
Danke!
Gruß, Alex.
AW: VBA-Worksheets().Rows().Select
25.05.2005 11:00:57
Kurt
Hi Hajo,
xlShiftDown ist doch default
kann man das dann nicht auch noch weglassen ?
...und Tschüss Kurt
AW: VBA-Worksheets().Rows().Select
25.05.2005 11:02:01
Hajo_Zi
Hallo Kurt,
ich habe jetzt nicht in die Hilfe geschaut, ich habe das jetzt Live zusammengestrichen.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

VBA: Zeilen in Worksheets mit VBA Auswählen und Einfügen


Schritt-für-Schritt-Anleitung

Um Zeilen in einem Excel-Arbeitsblatt mit VBA auszuwählen und einzufügen, kannst Du folgenden Code verwenden. Dieser Code zeigt, wie Du die Rows-Eigenschaft ohne die Verwendung von .Select nutzen kannst:

Sub AddRowBySelection()
    With ThisWorkbook.Worksheets("Deckblatt AUD")
        .Unprotect
        .Rows(20).Insert (xlShiftDown)
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub

Hierbei wird das Arbeitsblatt „Deckblatt AUD“ entsperrt, die Zeile 20 wird eingefügt und anschließend wird das Arbeitsblatt wieder geschützt. Diese Methode ist effizienter, da sie die Verwendung der .Select-Methode vermeidet.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Arbeiten mit Rows in VBA ist der Laufzeitfehler '1004', der auftritt, wenn Du versuchst, eine Zeile auszuwählen. Dies geschieht oft, weil die Select-Methode nicht erforderlich ist. Stattdessen kannst Du direkt auf die Rows-Eigenschaft zugreifen.

Wenn Du den Fehler siehst:

Laufzeitfehler '1004':
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.

vermeide die Verwendung von .Select und arbeite direkt mit der Rows-Eigenschaft, wie im obigen Beispiel gezeigt.


Alternative Methoden

Eine alternative Methode zum Einfügen von Zeilen in einem Arbeitsblatt besteht darin, die Range-Eigenschaft zu verwenden. Hier ist ein Beispiel:

Sub InsertRowUsingRange()
    ThisWorkbook.Worksheets("Deckblatt AUD").Rows(20).Insert Shift:=xlDown
End Sub

In diesem Beispiel wird die Range-Eigenschaft verwendet, um direkt die 20. Zeile einzufügen, ohne die Notwendigkeit, sie vorher auszuwählen.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von Rows in VBA:

  1. Einfügen mehrerer Zeilen:

    Sub InsertMultipleRows()
        With ThisWorkbook.Worksheets("Deckblatt AUD")
            .Rows("20:22").Insert Shift:=xlDown
        End With
    End Sub
  2. Einfügen von Zeilen in einer Schleife:

    Sub InsertRowsInLoop()
        Dim i As Integer
        For i = 1 To 5
            ThisWorkbook.Worksheets("Deckblatt AUD").Rows(i + 20).Insert Shift:=xlDown
        Next i
    End Sub

Diese Beispiele zeigen, wie Du flexibler mit dem Einfügen von Zeilen in einem Excel-Arbeitsblatt umgehen kannst.


Tipps für Profis

  • Verwende .With-Anweisungen: Dies reduziert den Code und macht ihn leserlicher.
  • Vermeide .Select und .Activate: Diese Methoden verlangsamen den VBA-Code und können zu Fehlern führen.
  • Nutze xlShiftDown nur, wenn nötig: Wenn Du nur eine Zeile einfügst, ist dies standardmäßig aktiviert. Du kannst es weglassen.

FAQ: Häufige Fragen

1. Warum sollte ich .Select vermeiden?
Die Verwendung von .Select macht den Code langsamer und anfälliger für Fehler. Du kannst direkt auf Objekte zugreifen, was effizienter ist.

2. Was ist der Unterschied zwischen Worksheets und Sheets in VBA?
Worksheets bezieht sich nur auf Arbeitsblätter, während Sheets sowohl Arbeitsblätter als auch Diagramme umfasst. Verwende Worksheets, wenn Du nur mit Arbeitsblättern arbeitest.

3. Wie kann ich eine Zeile auswählen, um sie zu formatieren?
Wenn Du eine Zeile formatieren möchtest, kannst Du dies direkt tun, ohne sie auszuwählen:

ThisWorkbook.Worksheets("Deckblatt AUD").Rows(20).Font.Bold = True

Diese Antworten sollten Dir helfen, die Grundlagen der Zeilenmanipulation in VBA besser zu verstehen.

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