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

Select-Methode = Laufzeitfehler 1004

Forumthread: Select-Methode = Laufzeitfehler 1004

Select-Methode = Laufzeitfehler 1004
Korl
Hallo,
ich stehe auf der Stelle bei diesen Code-Schnitzel.
"Fehlermeldung: Laufzeitfehler 1004
Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden."
wksQ.Range("O9").Copy
wksQ.Range("E9").PasteSpecial Paste:=xlPasteValues, Transpose:=False
Application.CutCopyMode = False
wksQ.Range("C13").Select
Application.ScreenUpdating = True
Kann vielleicht jemand mir einen Tipp geben?
Gruß Korl
Anzeige
AW: Select-Methode = Laufzeitfehler 1004
23.07.2011 19:44:46
Hajo_Zi
Hallo Korl,
Du kannst nur eine Zelle auf der aktiven Tabelle mit select wählen.

AW: Select-Methode = Laufzeitfehler 1004
23.07.2011 19:57:28
Hajo_Zi
Hallo Korl,
, Transpose:=False
kann gelöscht werden da Standard.
Gruß Hajo
Anzeige
wksQ ist nicht die aktive Tabelle! o.T.
23.07.2011 19:45:12
Josef
« Gruß Sepp »

AW: wksQ ist nicht die aktive Tabelle! o.T.
23.07.2011 20:03:06
Korl
Hallo Hajo und Sepp,
danke für Eure schnelle Reaktion und Ihr habt Recht!
Es gibt wohl auch keinen Umweg um am Ende des Code den Corsur auf wksQ.Range("C13")
zu setzen?
Gruß Korl
Anzeige
AW: wksQ ist nicht die aktive Tabelle! o.T.
23.07.2011 20:05:36
Hajo_Zi
Hallo Korl,
Application.Goto Reference:=Range("F6"), scroll:=True
Gruß Hajo
vielleicht bist Du nur im falschen Sheet ?
23.07.2011 19:47:51
Matthias
Hallo Korl
wksQ.Range("C13").Select
erfordert, das Du auch im entsprechenden Sheet(wksQ) bist
Ansonsten müsstest Du erst auf dieses Sheet wechseln
Ansonsten zeig mal mehr
Gruß Matthias
Anzeige
AW: vielleicht bist Du nur im falschen Sheet ?
23.07.2011 20:14:50
Korl
Hallo Matthias,
danke für Dein Interesse.
So sieht der gesamte Code aus:
Sub BSM_übernehmen()
' Daten für BSM aus der Datenbank ins Formular übernehmen
' aus der aktiven Zeile einzelne Werte in Tabelle "Formular" kopieren
Set wksQ = Worksheets("Formular")
Set wksD = Worksheets("Datenbank")
Application.ScreenUpdating = False
wksD.Cells(ActiveCell.Row, 1).Copy
wksQ.Cells(3, 5).PasteSpecial Paste:=xlPasteValues
wksD.Cells(ActiveCell.Row, 2).Copy
wksQ.Cells(4, 5).PasteSpecial Paste:=xlPasteValues
wksD.Cells(ActiveCell.Row, 7).Copy
wksQ.Cells(5, 5).PasteSpecial Paste:=xlPasteValues
wksD.Cells(ActiveCell.Row, 8).Copy
wksQ.Cells(7, 5).PasteSpecial Paste:=xlPasteValues
wksD.Cells(ActiveCell.Row, 9).Copy
wksQ.Cells(8, 5).PasteSpecial Paste:=xlPasteValues
wksD.Cells(ActiveCell.Row, 10).Copy
wksQ.Cells(9, 5).PasteSpecial Paste:=xlPasteValues
wksQ.Range("O5").Copy
wksQ.Range("E5").PasteSpecial Paste:=xlPasteValues
wksQ.Range("O7").Copy
wksQ.Range("E7").PasteSpecial Paste:=xlPasteValues
wksQ.Range("O8").Copy
wksQ.Range("E8").PasteSpecial Paste:=xlPasteValues
wksQ.Range("O9").Copy
wksQ.Range("E9").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'    wksQ.Range("C13").Select
Application.ScreenUpdating = True
End Sub

Gruß Korl
Anzeige
AW: vielleicht bist Du nur im falschen Sheet ?
23.07.2011 20:23:45
Matthias
Hallo Korl
wksD.Cells(ActiveCell.Row, 1).Copy
lässt darauf schliessen, das Du Dich im Sheet"Datenbank" befindest!
Bevor Du also wksQ.Range("C13").Select ausführen willst,
musst Du erst die Tabelle wksQ aktivieren
Gruß Matthias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 1004: Die Select-Methode des Range-Objektes


Schritt-für-Schritt-Anleitung

Wenn Du beim Arbeiten mit Excel VBA auf den Laufzeitfehler 1004 stößt, der besagt, dass „die Select-Methode des Range-Objektes konnte nicht ausgeführt werden“, folge diesen Schritten:

  1. Überprüfe das aktive Arbeitsblatt: Stelle sicher, dass Du dich im richtigen Arbeitsblatt befindest, bevor Du eine Zelle auswählst. Zum Beispiel, wenn Du wksQ.Range("C13").Select verwendest, muss das Arbeitsblatt wksQ aktiv sein.

    Worksheets("Formular").Activate
  2. Verwende die Goto-Methode: Anstatt Select zu verwenden, kannst Du die Application.Goto-Methode verwenden, um zu einer bestimmten Zelle zu navigieren.

    Application.Goto Reference:=wksQ.Range("C13"), Scroll:=True
  3. Vermeide das Select: In vielen Fällen kannst Du Select ganz vermeiden, indem Du direkt mit dem Range-Objekt arbeitest.

    wksQ.Range("C13").Value = "Dein Wert"
  4. Entferne überflüssige Parameter: Wenn Du die PasteSpecial-Methode verwendest, kann der Parameter Transpose:=False weggelassen werden, da dies der Standardwert ist.


Häufige Fehler und Lösungen

  • Fehler: „Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.“

    • Lösung: Überprüfe, ob das Arbeitsblatt aktiv ist, bevor Du eine Zelle auswählst. Verwende Activate, um zum gewünschten Arbeitsblatt zu wechseln.
  • Fehler: ActiveCell verweist auf die falsche Zeile.

    • Lösung: Stelle sicher, dass Du die richtige Zeile in der Datenbank auswählst, bevor Du die Daten kopierst.

Alternative Methoden

Wenn Du häufig mit Excel VBA arbeitest, sind hier einige alternative Methoden, um den Fehler zu vermeiden:

  1. Direktes Arbeiten mit Zellen: Anstatt eine Zelle zu selektieren, arbeite direkt mit den Zellen oder Bereichen, um den Code effizienter zu gestalten.

    wksQ.Cells(3, 5).Value = wksD.Cells(ActiveCell.Row, 1).Value
  2. Verwenden von Arrays: Wenn Du große Datenmengen verarbeiten musst, kannst Du die Werte in ein Array laden, Änderungen vornehmen und dann das gesamte Array zurück in das Arbeitsblatt schreiben.


Praktische Beispiele

Hier ein Beispiel, das zeigt, wie Du die Select-Methode vermeiden kannst:

Sub DatenÜbertragen()
    Dim wksQ As Worksheet
    Dim wksD As Worksheet
    Set wksQ = Worksheets("Formular")
    Set wksD = Worksheets("Datenbank")

    ' Daten direkt ohne Select übertragen
    wksQ.Cells(3, 5).Value = wksD.Cells(ActiveCell.Row, 1).Value
    wksQ.Cells(4, 5).Value = wksD.Cells(ActiveCell.Row, 2).Value
    ' ...
End Sub

In diesem Beispiel wird die Select-Methode vollständig umgangen, was die Wahrscheinlichkeit eines Laufzeitfehlers 1004 verringert.


Tipps für Profis

  • Debugging: Nutze Debug.Print, um Werte während der Ausführung zu überprüfen und sicherzustellen, dass Du im richtigen Arbeitsblatt bist.

  • Verwende Option Explicit: Dieser Befehl hilft Dir, Variablen zu definieren, und kann dazu beitragen, Fehler frühzeitig zu erkennen.

  • Vermeide häufige Wechsel: Reduziere häufige Wechsel zwischen Arbeitsblättern, um die Performance zu verbessern und Fehler zu minimieren.


FAQ: Häufige Fragen

1. Was bedeutet der Laufzeitfehler 1004?
Der Laufzeitfehler 1004 tritt auf, wenn ein VBA-Befehl nicht ausgeführt werden kann, oft aufgrund eines Problems mit dem aktuellen Arbeitsblatt oder der Auswahl.

2. Wie kann ich den Fehler vermeiden?
Vermeide die Verwendung von Select und arbeite direkt mit Range-Objekten. Stelle sicher, dass das richtige Arbeitsblatt aktiv ist, bevor Du darauf zugreifst.

3. Ist der Fehler spezifisch für eine Excel-Version?
Der Fehler kann in verschiedenen Excel-Versionen auftreten, aber die Lösungen sind in der Regel konsistent, unabhängig von der Version.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige