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

Forumthread: Einfaches Copy und PasteSpecial funktioniert nicht

Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 13:21:39
AleXSR700
Hallo zusammen,
ich versuche zu lernen, deshalb stelle ich eine für euch bestimmt banale Frage.
Ich möchte Zellen von einem Arbeitsblatt in ein anderes kopieren. Das funktioniert auch, wenn ich Zelle für Zelle kopiere. Aber wenn ich eine Range kopieren will, dann bekomme ich einen Laufzeitfehler 1004, Anwendungs- oder objektdefinierten Fehler.
Die gleiche Syntax funktioniert aber in einem anderen Codeabschnitt problemlos.
Sub Export_einlesen()
Dim Dateiname As String
Dim i As Integer
Dim iRow As Integer
Dim iColumn As Integer
Dim LRow As Integer
Dim LColumn As Integer
Dim Lwb As Workbook
LRow = 1
LColumn = 1
iRow = 10
iColumn = 2
Do Until Worksheets("Export").Cells(LRow + 1, 1)  Worksheets("Export").Cells(LRow, 1)
Worksheets("Export").Range(Cells(LRow, LColumn), Cells(LRow, LColumn + 9)).Copy
Worksheets("Batch").Cells(iRow, iColumn).PasteSpecial
If IsEmpty(Worksheets("Export").Cells(LRow + 1, 1)) Then Exit Do
Loop
End Sub
Er stört sich jedesmal am Copy & Paste. Ich weiss aber nicht wieso. Kann es an Zellformatierungen in der Quelle o. ä. liegen?
Ich würde ungern Zelle für Zelle kopieren. Das funktioniert zwar, ist aber hier weniger "elegant".
Vielen Dank für eure Hilfe und viele Grüße
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 13:51:32
fcs
Hallo Alex,
in der Zeile in der Range kopiert werden soll ist die Referenz für Cells nicht angegeben,
Je nachdem welches Tabellenblatt das aktive Blatt ist oder in welchem Modul das Makro gespeichert ist gibt es einen Objektfehler.
Probiere es mal so:

Sub Export_einlesen()
Dim Dateiname As String
Dim i As Integer
Dim iRow As Integer
Dim iColumn As Integer
Dim LRow As Integer
Dim LColumn As Integer
Dim Lwb As Workbook
LRow = 1
LColumn = 1
iRow = 10
iColumn = 2
With Worksheets("Export")
Do Until .Cells(LRow + 1, 1)  .Cells(LRow, 1)
.Range(.Cells(LRow, LColumn), .Cells(LRow, LColumn + 9)).Copy
Worksheets("Batch").Cells(iRow, iColumn).PasteSpecial
If IsEmpty(.Cells(LRow + 1, 1)) Then Exit Do
LRow = LRow + 1 '?
'            iRow = iRow + 1 '?
Loop
End With
End Sub
LG
Franz
Anzeige
AW: Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 13:51:49
Piet
Hallo
du hast zwar "PasteSpecial" angegeben, sagst im Code aber nicht welche Funktion Paste ausführen soll!!
Da gibt es: - .PasteSpecial xlPasteAll, xlPasteValues, xlPasteFormulas, usw. - irgendwas MUSST du angeben!!
xlPasteAll kopiert alles, auch alle Zellformate! xlPastValues kopiert NUR WERTE, kopiert KEINE Formate!
Du kannst nur Formeln als Formel kopieren, Formate, und noch andere Funktionen. Schau mal bei Microsoft. Ist sehr umfangreich.
mfg Piet
Anzeige
AW: Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 15:33:55
AleXSR700
Hallo Piet, hallo fcs,
danke für eure Rückmeldungen.
@Piet:
Man kann, soweit ich das sehe, auch ohne PasteAll, PasteValue etc. das PasteSpecial benutzen. Funktioniert zumindest bei mir bisher immer problemlos.
@fcs:
Es liegt tatsächlich daran, dass ich den Code im Arbeitsblatt "Batch" angelegt habe. Lege ich ihn in "Export", dann funktioniert es.
Weisst du, wie ich es hinbekomme, dass der code im Arbeitsblatt "Batch" liegen kann? Das Export wird nämlich bei jedem mal neu erzeugt und danach wieder gelöscht. Nur Batch bleibt erhalten.
Anzeige
AW: Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 15:57:33
Nepumuk
Hallo Alex,
so sollte es aus jeder Tabelle heraus funktionieren:
Option Explicit

Public Sub Export_einlesen()
    Dim Dateiname As String
    Dim i As Long
    Dim iRow As Long
    Dim iColumn As Long
    Dim LRow As Long
    Dim LColumn As Long
    Dim Lwb As Workbook
    
    LRow = 1
    LColumn = 1
    iRow = 10
    iColumn = 2
    
    With Worksheets("Export")
        
        Do Until .Cells(LRow + 1, 1).Value <> .Cells(LRow, 1).Value
            .Range(.Cells(LRow, LColumn), .Cells(LRow, LColumn + 9)).Copy
            Worksheets("Batch").Cells(iRow, iColumn).PasteSpecial
            If IsEmpty(.Cells(LRow + 1, 1).Value) Then Exit Do
            
        Loop
    End With
End Sub

Die Zähler hochsetzen musst du noch einbauen.
Gruß
Nepumuk
Anzeige
AW: Einfaches Copy und PasteSpecial funktioniert nicht
02.08.2019 16:18:01
fcs
Hallo Alex,
die Lösung hat ich in meiner Antwort schon geschrieben.
Ist ähnlich der von Nepomuk
LG
Franz
;

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
Anzeige

Infobox / Tutorial

Copy und PasteSpecial in Excel VBA richtig anwenden


Schritt-für-Schritt-Anleitung

Um Daten in Excel von einem Arbeitsblatt in ein anderes zu kopieren, verwende die folgende VBA-Prozedur. Achte darauf, dass du die spezifischen Argumente für PasteSpecial angibst, um die gewünschten Ergebnisse zu erzielen.

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub Export_einlesen()
    Dim iRow As Long
    Dim iColumn As Long
    Dim LRow As Long
    Dim LColumn As Long

    LRow = 1
    LColumn = 1
    iRow = 10
    iColumn = 2

    With Worksheets("Export")
        Do Until .Cells(LRow + 1, 1).Value <> .Cells(LRow, 1).Value
            .Range(.Cells(LRow, LColumn), .Cells(LRow, LColumn + 9)).Copy
            Worksheets("Batch").Cells(iRow, iColumn).PasteSpecial Paste:=xlPasteAll
            If IsEmpty(.Cells(LRow + 1, 1)) Then Exit Do
            LRow = LRow + 1
            iRow = iRow + 1
        Loop
    End With
End Sub
  1. Passe die Werte für LRow, LColumn, iRow und iColumn nach Bedarf an.
  2. Führe das Makro aus, um das Kopieren und Einfügen zu testen.

Häufige Fehler und Lösungen

Fehler: Laufzeitfehler 1004

  • Ursache: Die Referenz zu Cells ist nicht korrekt. Stelle sicher, dass du die With-Anweisung verwendest, um die Objekte zu referenzieren.
  • Lösung: Verwende die Referenz wie im obigen Code.

Fehler: PasteSpecial funktioniert nicht

  • Ursache: Möglicherweise fehlt der spezifische Paste-Parameter.
  • Lösung: Füge Paste:=xlPasteAll oder einen anderen spezifischen Parameter hinzu, z.B. xlPasteValues.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du es direkt in Excel versuchen:

  1. Markiere die Zellen, die du kopieren möchtest.
  2. Klicke mit der rechten Maustaste und wähle "Kopieren".
  3. Wechsle zu dem Arbeitsblatt, in das du die Daten einfügen möchtest.
  4. Klicke mit der rechten Maustaste auf die Zielzelle und wähle "Inhalte einfügen" > "Werte".

Dies funktioniert gut, wenn du einfache Kopier- und Einfügeoperationen durchführen möchtest, ohne VBA zu verwenden.


Praktische Beispiele

Beispiel für das Kopieren von Werten:

Worksheets("Batch").Cells(iRow, iColumn).PasteSpecial Paste:=xlPasteValues

Verwende diese Zeile, wenn du nur die Werte der kopierten Zellen ohne Formatierungen oder Formeln einfügen möchtest.


Tipps für Profis

  • Nutze Application.CutCopyMode = False, um den Kopiermodus zu beenden, nachdem du die Daten eingefügt hast. Dadurch wird das blinkende "Ausschnitt"-Feld entfernt.
Application.CutCopyMode = False
  • Experimentiere mit verschiedenen PasteSpecial-Parametern, um die für deine Anforderungen passende Option zu finden, wie z.B. xlPasteFormats oder xlPasteFormulas.

FAQ: Häufige Fragen

1. Warum funktioniert das Excel Copy Paste nicht? Die häufigsten Gründe sind falsche Zellreferenzen oder fehlende Parameter in der PasteSpecial-Methode.

2. Was ist der Unterschied zwischen PasteSpecial und einfachem Einfügen? PasteSpecial ermöglicht es dir, spezifische Elemente wie Werte, Formate oder Formeln zu kopieren, während das einfache Einfügen alles übernimmt.

3. Kann ich PasteSpecial auch ohne VBA verwenden? Ja, du kannst die Funktion über das Kontextmenü in Excel nutzen, indem du "Inhalte einfügen" wählst.

4. Wie kann ich Fehler beim Kopieren und Einfügen in SAP beheben? Überprüfe die Kompatibilität und Berechtigungen in der SAP-Anwendung, da dort spezielle Einschränkungen gelten können, die das Kopieren und Einfügen beeinträchtigen.

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