Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range Copy Value

Range Copy Value
20.07.2017 11:41:22
Steve
Hallo, ich versuche aus einem Tabellenblatt Werte einer Spalte in die dazugehörige Spalte eines anderen Tabellenblattes (eines anderen Workbooks) zu kopieren.
Die Zieltabelle liefert mir die Formatierung, die Quelltabelle die Werte.
  • wbQuelle.Range((Cells(2, counter2)), Cells(lastrow_quelle, counter2)).Copy Destination:=wbZiel.Range(Cells(2, counter1), Cells(lastrow_quelle, counter1)), PasteSpecialPaste:=xlValues

  • Ich versuche an dieser Stelle nur die Werte zu kopieren. Die Spalten stimmen zwischen Quelle und Ziel nicht überein, diese werden anhand der Bezeichnung zugeordnet. Fehlermeldung: Laufzeitfehler
    Danke.

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Range Copy Value
    20.07.2017 11:59:28
    Michael
    Hallo!
    Innerhalb eines Copy-Befehls kannst Du PasteSpecial (das bei Dir auch noch falsch geschrieben ist) nicht nutzen. Dafür braucht es zwei Methoden, schematisch:
    Range("A3:A55").Copy
    Range("B3").PasteSpecial xlPasteValues
    
    Beachte: Es heißt NICHT PasteSpecialPaste:=xlValues...
    LG
    Michael
    AW: Range Copy Value
    20.07.2017 12:49:57
    Steve
    
    wbQuelle.Range((Cells(2, counter2)), Cells(lastrow_quelle, counter2)).Copy
    wbZiel.Range(Cells(2, counter1), Cells(lastrow_quelle, counter1)).PasteSpecial xlPasteValues
    
    Bringt mir allerdings immer noch eine Fehlermeldung Laufzeitfehler 1004. Denke es liegt am .Range?!
    Anzeige
    AW: Range Copy Value
    20.07.2017 13:05:01
    Werner
    Hallo Steve,
    weil deine Referenzierung nicht stimmt. So wie du das schreibst muss vor allen Range-Objekten (Range, Cells) das entsprechende Blatt gesetzt werden.
    Das wäre dann so:
    wbQuelle.Range(wbQuelle.Cells(2, counter2), wbQuelle.Cells(lastrow_quelle, counter2)).Copy
    wbZiel.Range(wbZiel.Cells(2, counter1), wbZiel.Cells(lastrow_quelle, counter1)).PasteSpecial _
    xlPasteValues
    
    Zudem muss bei dieser Schreibweise Quell und Zielbereich gleich groß sein.
    Kürzere Schreibweise über eine With - End With Klammer. Da wird dann auf das beim With angegebene Blatt referenziert, indem vor den jeweiligen Range-Objekten (Range, Cells) ein Punkt gesetzt wird.
    Zudem reicht normalerweise beim Ziel die Angabe der linken oberen Zelle des Zielbereichs.
    Das wäre in deinem Fall:
    With wbQuelle
    .Range(.Cells(2, counter2), .Cells(lastrow_quelle, counter2)).Copy
    wbZiel.Cells(2, counter1).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    End With
    
    Gruß Werner
    Anzeige
    AW: Range Copy Value
    20.07.2017 13:45:51
    Steve
    Vielen Dank.
    Läuft!!
    Gerne u. Danke für die Rückmeldung. o.w.T.
    20.07.2017 13:49:01
    Werner
    AW: Range Copy Value
    20.07.2017 13:05:39
    Michael
    Hallo!
    Denke es liegt am .Range?!
    Ja. Gib keinen Ziel-Bereich an, sondern eine Ziel-Zelle.
    Bsp.
    Range("A1:A24").Copy
    Range("C5").PasteSpecial xlPasteValues
    
    oder
    Range("A1:A24").Copy
    Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    
    LG
    Michael

    56 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige