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

Forumthread: cells.offset

cells.offset
27.06.2003 11:06:28
Olli
Hallo Ihr Lieben,

habe eine Frage bezueglich dieser 3 Zeilen Code:

Warum klappt der Offset-Befehl nicht?


Sub letzteZeilefinden()
Dim LetzteZ As Long

LetzteZ = Range("6500").End(xlUp).Row
Cells(LetzteZ, 1).Offset(1, 0).Value = 2110

End Sub

Habe auch schon folgendes versucht:

Sub letzteZeilefinden()
Dim LetzteZ As Long

LetzteZ = Range("6500").End(xlUp).Row
Cells(LetzteZ, 1).Select
ActiveCell.Offset(1, 0).Value = 2110

End Sub


Erhalte immer den Laufzeitfehler 1004

Irgendjemand eine Idee? Waere sehr dankbar.

Noch etwas: Wie kann ich dann statts dem Value (bin in der Entwicklungsphase ;-)) eine Zeile einfuegen hinter der letzten?
Insert.Row xlshift irgendwas? Werden dann alle Formeln und Formate der Tabelle uebernommen?
Viele Gruesse
Olli

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: cells.offset
27.06.2003 11:09:11
L.Vira

Range("6500") gibts nicht, wenn dann z.B. Range("A6500")

Tomaten auf den Augen - DANKE!
27.06.2003 11:19:59
Olli

.

Anzeige
;
Anzeige

Infobox / Tutorial

Verwendung von Cells.Offset in VBA für Excel


Schritt-für-Schritt-Anleitung

Um den Cells.Offset-Befehl in VBA korrekt zu verwenden, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle "Einfügen" -> "Modul".

  3. Gib den folgenden Code ein:

    Sub letzteZeilefinden()
       Dim LetzteZ As Long
       LetzteZ = Range("A6500").End(xlUp).Row
       Cells(LetzteZ, 1).Offset(1, 0).Value = 2110
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro auszuführen und die letzte Zeile mit dem Wert 2110 zu füllen.

Stelle sicher, dass Du die richtige Zellreferenz verwendest (z.B. Range("A6500")), da Range("6500") nicht gültig ist.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn die angegebene Zelle nicht existiert. Stelle sicher, dass Du die richtige Zellreferenz verwendest, wie z.B. Range("A6500").

  • Offset funktioniert nicht: Überprüfe, ob der Wert von LetzteZ korrekt bestimmt wird. Wenn die Zelle leer ist, kann End(xlUp) möglicherweise die erwartete Zeile nicht finden.


Alternative Methoden

Wenn Du Schwierigkeiten mit Cells.Offset hast, kannst Du auch die Range-Objekte verwenden:

Sub letzteZeilefindenAlternative()
    Dim LetzteZ As Long
    LetzteZ = Range("A6500").End(xlUp).Row
    Range("A" & LetzteZ + 1).Value = 2110
End Sub

Diese Methode verwendet die Range-Notation, um den Wert direkt in die nächste Zeile zu schreiben.


Praktische Beispiele

Hier sind einige nützliche Beispiele für die Verwendung von Cells.Offset in Excel VBA:

  1. Wert in die nächste Zeile schreiben:

    Cells(LetzteZ, 1).Offset(1, 0).Value = 2110
  2. Zelle unter der aktuellen Zelle leeren:

    Cells(LetzteZ, 1).Offset(1, 0).ClearContents
  3. Eine Zeile hinter der letzten Zeile einfügen:

    Rows(LetzteZ + 1).Insert Shift:=xlDown

Diese Beispiele zeigen die Flexibilität des Cells.Offset-Befehls in verschiedenen Szenarien.


Tipps für Profis

  • Verwende .Select und ActiveCell sparsam, um die Performance zu verbessern. Direkte Referenzen mit Cells oder Range sind schneller.

  • Nutze die With-Anweisung, um Code zu vereinfachen und lesbarer zu machen:

    With Cells(LetzteZ, 1)
       .Offset(1, 0).Value = 2110
    End With
  • Teste Deinen Code in einer sicheren Umgebung, um unerwartete Änderungen an Deiner Excel-Datei zu vermeiden.


FAQ: Häufige Fragen

1. Warum funktioniert Cells.Offset nicht? Überprüfe, ob die Referenz für die Zelle korrekt ist und ob die Zelle, auf die Du zugreifen möchtest, tatsächlich existiert.

2. Wie füge ich eine Zeile hinter der letzten Zeile ein? Du kannst die Insert-Methode verwenden, um eine neue Zeile einzufügen. Beispiel:

Rows(LetzteZ + 1).Insert Shift:=xlDown

3. Was ist der Unterschied zwischen Cells.Offset und Range.Offset? Beide Methoden sind ähnlich, aber Cells verwendet numerische Indizes, während Range eine Zellreferenz verwendet.

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