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

Forumthread: Fehler bei Paste Methode, Laufzeitfehler 1004

Fehler bei Paste Methode, Laufzeitfehler 1004
07.06.2007 10:23:00
Andre
Moin Moin,
bin mal wieder unbeholfen was Excel angeht.
Habe mir mit dem Recorder ein Makro erstellt, allerdings führt Excel es nur zum Teil aus.
Bin für jede Hilfe dankbar!
Gruß
André aus SH
Die Fehlermeldung: Laufzeitfehler 1004
Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden.
Das Makro:

Sub Test_07_06()
' Test Makro
' Makro am 07.06.2007 von andre aufgezeichnet
Workbooks.Open Filename:= _
"C:\Test.xls"
Range("B4:C33").Select
Selection.Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range("C4") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Range("B4:C33").Select
Selection.Copy
ActiveWorkbook.Save
ActiveWindow.Close
Range("B4").Select
ActiveSheet.Paste             DENKE MAL DAS EXCEL SICH AN DIESER STELLE AUFHÄNGT.
Range("C3").Select
Workbooks.Open Filename:= _
"C:\Test.xls"
Range("E4:E33").Select
Selection.Copy
ActiveWindow.Close
Range("E4").Select
ActiveSheet.Paste
Range("D3").Select
Selection.AutoFill Destination:=Range("D3:D33"), Type:=xlFillCopy
Range("D3:D33").Select
ActiveWindow.SmallScroll Down:=-9
Range("B4:C33").Select
Selection.Copy
Sheets("WB").Select
Range("C12").Select
ActiveSheet.Paste
Range("E12").Select
Sheets("Voreinstellungen").Select
ActiveWindow.SmallScroll Down:=-15
Application.CutCopyMode = False
Range("B3").Select
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Paste Methode, Laufzeitfehler 1004
07.06.2007 10:32:13
Hajo_Zi
Hallo Andre,
auf select kann in VBA zu 99% verzichtet werden. Ohne Testung
Option Explicit

Sub Test_07_06()
' Test Makro
' Makro am 07.06.2007 von andre aufgezeichnet
Dim StName As String
StName = ActiveSheet.Name
Workbooks.Open Filename:="C:\Test.xls"
Range("B4:C33").Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range("C4") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Range("B4:C33").Copy ThisWorkbook.Worksheets(StName).Range("B4")
ActiveWindow.Close
Workbooks.Open Filename:="C:\Test.xls"
Range("E4:E33").Copy ThisWorkbook.Worksheets(StName).Range("E4")
ActiveWindow.Close
Range("D3").AutoFill Destination:=Range("D3:D33"), Type:=xlFillCopy
Range("B4:C33").Copy Sheets("WB").Range("C12")
End Sub



Anzeige
AW: Fehler bei Paste Methode, Laufzeitfehler 1004
07.06.2007 10:34:00
Hajo_Zi
Hallo Andre,
auf select kann in VBA zu 99% verzichtet werden. Ohne Testung
Option Explicit

Sub Test_07_06()
' Test Makro
' Makro am 07.06.2007 von andre aufgezeichnet
Dim StName As String
StName = ActiveSheet.Name
Workbooks.Open Filename:="C:\Test.xls"
Range("B4:C33").Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range("C4") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Range("B4:C33").Copy ThisWorkbook.Worksheets(StName).Range("B4")
ActiveWindow.Close
Workbooks.Open Filename:="C:\Test.xls"
Range("E4:E33").Copy ThisWorkbook.Worksheets(StName).Range("E4")
ActiveWindow.Close
Range("D3").AutoFill Destination:=Range("D3:D33"), Type:=xlFillCopy
Range("B4:C33").Copy Sheets("WB").Range("C12")
End Sub



Anzeige
@Hajo Danke für deine Hilfe - klappt jetzt!
07.06.2007 10:48:00
Andre
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehler bei Paste Methode: Laufzeitfehler 1004 in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei: Stelle sicher, dass die Datei korrekt geöffnet wird.

    Workbooks.Open Filename:="C:\Test.xls"
  2. Sortieren der Daten: Sortiere den gewünschten Bereich ohne die Select-Methode.

    Range("B4:C33").Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range("C4"), Order2:=xlAscending, Header:=xlNo
  3. Kopieren der Daten: Verwende die Copy-Methode direkt ohne vorherige Auswahl.

    Range("B4:C33").Copy ThisWorkbook.Worksheets("DeinSheetName").Range("B4")
  4. Daten einfügen: Vermeide ActiveSheet.Paste und benutze stattdessen:

    ThisWorkbook.Worksheets("DeinSheetName").Range("B4").PasteSpecial
  5. AutoFill verwenden: Um den Bereich automatisch auszufüllen:

    Range("D3").AutoFill Destination:=Range("D3:D33"), Type:=xlFillCopy
  6. Speichern und Schließen: Speichere deine Änderungen und schließe die Arbeitsmappe.

    ActiveWorkbook.Save
    ActiveWindow.Close

Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn die Paste-Methode nicht korrekt verwendet wird. Achte darauf, dass du die richtigen Referenzen verwendest und die Select-Methode vermeidest.

  • Dateipfad: Überprüfe, ob der angegebene Dateipfad korrekt ist. Ein falscher Pfad führt dazu, dass die Datei nicht gefunden wird.


Alternative Methoden

  • Direktes Kopieren ohne Auswahl: Statt Selection.Copy zu verwenden, kannst du direkt auf die Zelle zugreifen:

    Range("B4:C33").Copy Destination:=Sheets("WB").Range("C12")
  • Verwenden von PasteSpecial: Nutze PasteSpecial, um spezifische Paste-Optionen auszuwählen, z.B. nur Werte oder Formate:

    Range("C12").PasteSpecial Paste:=xlPasteValues

Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Makro, das die Paste-Methode korrekt anwendet:

Sub BeispielMakro()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Tabelle1")

    Workbooks.Open Filename:="C:\Test.xls"
    ws.Range("B4:C33").Copy Destination:=ws.Range("D4")
    Application.CutCopyMode = False
End Sub

Tipps für Profis

  • Nutze Option Explicit: Das Hinzufügen von Option Explicit oben im Modul zwingt dich dazu, alle Variablen zu deklarieren, was die Fehlersuche erleichtert.

  • Makros optimieren: Vermeide unnötige Bildschirmaktualisierungen mit:

    Application.ScreenUpdating = False
  • Fehlerbehandlung: Implementiere Fehlerbehandlung in deinem Code, um Laufzeitfehler abzufangen:

    On Error Resume Next

FAQ: Häufige Fragen

1. Was bedeutet Laufzeitfehler 1004?
Der Laufzeitfehler 1004 zeigt an, dass Excel ein Problem beim Ausführen des Codes hat, meist aufgrund falscher Referenzen oder Methoden.

2. Kann ich die Select-Methode komplett vermeiden?
Ja, es ist empfehlenswert, die Select-Methode zu vermeiden, um den Code effizienter und weniger fehleranfällig zu gestalten.

3. Wie kann ich sicherstellen, dass meine Daten korrekt eingefügt werden?
Verwende die PasteSpecial-Methode, um genau zu steuern, was eingefügt wird, z.B. nur Werte oder Formate.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige