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

Forumthread: Range("A1").Paste ?

Range("A1").Paste ?
Karsten
Hallo,
wenn ich einen Teil einer Zelle kopiere und danach folgenden Code starte
Range("A1").select
ActiveSheet.Paste
funktioniert das Einfügen.
Wenn ich das Kopierte über diesen Code einfügen möchte,
Range("A1").Paste
geht es nicht.
Kann mir jemand den Code richtig schreiben um Select einzusparen?
Danke
Gruß
Karsten
P.S. ich weiß, ich bin's schon wieder.
Anzeige
AW: Range("A1").Paste ?
27.12.2011 16:47:29
Hajo_Zi
Hallo Karsten,
Range("E7:F8").copy Range("A1")

AW: Range("A1").Paste ?
27.12.2011 17:17:02
Karsten
Hallo Hajo,
ne, ne das war nicht meine Frage.
Gruß
Karsten
Nur Werte kopieren: Range("A1") = Range("D10")
27.12.2011 16:54:50
NoNet
Hallo Karsten,
die .PASTE Methode gehört zum WorkSheet-Objekt und nicht zum RANGE-Objekt, daher funktioniert das (leider !) nur für Blätter und nicht für Zellen/Bereiche ! Daher ist auch zunächst die Auswahl (.SELECT) einer Zelle notwendig.
Was möchtest Du denn kopieren ? - Nur Werte oder auch Formate (Zellen-, Schrift-, Zahlenformate, Bedingte Formatierungen) - oder auch Gültigkeiten, Kommentare etc. ?
Falls nur Werte kopiert werden sollen genügt folgende Alternative ohne .SELECT :
Range("A1") = Range("D10")

Diese Syntax "kopiert" den Wert von Zelle D10 nach A1 (genauer: A1 erhält den gleichen Wert wie Zelle D10).
Genügt Dir diese Syntax bereits ? - Wie geschrieben : Hiermit werden lediglich die WERTE übertragen, keine Formatierungen oder Formeln !
Gruß, NoNet
(jaja, ich weiß : Ich bin's auch schon wieder *nerv* ;-)
Anzeige
AW: Nur Werte kopieren: Range("A1") = Range("D10")
27.12.2011 17:15:02
Karsten
Hallo NoNet,
es geht nur um einen Teil des Zellinhaltes (Wert). Also beim Wort "Tasse" z.B. nur um "asse". Ist ein blödes Beipiel aber mir fällt gerade nichts anderes ein.
Range("A1").PasteSpecial xlValues z.B. geht ja auch bei der ganzen Zelle. Nun, für einen Zellteil dachte ich, müsste es mit Range("A1").Paste gehen.
Gruß
Karsten
Anzeige
Range("A1") = MID(Range("D10"),2,4) _oT
27.12.2011 17:29:22
NoNet
_oT = "ohne Text"
AW: Range("A1") = MID(Range("D10"),2,4) _oT
27.12.2011 17:53:42
Karsten
Hallo NoNet,
Au, das haut aber auch nur für Tasse hin. Hätte ich lieber mal was anderes genommen. :o)
Jetzt hab ich mal ein Beispiel angelegt.
https://www.herber.de/bbs/user/78107.xls
Das in A1 Kopierte wird mittels des Makro in B1 abgelegt. Das ist eine Zwischenablage. Nachdem möglicherweise ein Haufen andere Makros durchforstet wurden, vielleicht auch die Mappe gespeichert, geschlossen und wieder geöffnet wurde, wird der Inhalt irgendwo anders wieder eingefügt. Vielleicht in A1 oder X10. Kann überall sein.
Es funktioniert ja auch bei mir, aber nur mit select.
Die vollmundig angepriesene Methode - ohne select (geht zu 99,9 Prozent) scheint in diesem Falle wohl nicht zu gehen. Oder doch...
Gruß
Karsten
Anzeige
AW: Range("A1") = MID(Range("D10"),2,4) _oT
27.12.2011 19:08:05
Luschi
Hallo Karsten,
hier eine Möglichkeit ohne'Select' und ohne 'Clipboard':

Sub mein_Versuch()
Dim ok As Boolean
ok = False
Select Case Application.CutCopyMode
Case Is = False
ActiveSheet.Range("A1").Copy
ok = True
Case Is = xlCopy
ok = True
Case Is = xlCut
End Select
If ok Then
ActiveSheet.Paste ActiveSheet.Range("B1")
If ActiveSheet.Range("B1").HasFormula Then
ActiveSheet.Range("B1").Value = ActiveSheet.Range("B1").Value
End If
End If
Application.CutCopyMode = False
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Range("A1") = MID(Range("D10"),2,4) _oT
27.12.2011 19:53:44
Karsten
Hallo Luschi,
danke, bin erst gerade drauf gestoßen, dass es mit einem purem ActiveCell.PasteSpecial geht.
Trotzdem, vielleicht brauch ichs noch.
Gruß
Karsten
..und das verstehst Du?bei dem Level?
28.12.2011 19:26:54
robert
*gggg*
Umbenennung von Herber.Forum auf Karsten.Forum?
27.12.2011 19:06:35
Herber.Forum
Anzeige
Gespannt, wie sich das noch entwickelt! Ausmaße...
28.12.2011 15:55:15
Luc:-?
…nicht Inhalt, denn der ist trivial! Aber irgendwann müssen ja mal die eigentl Probleme kommen… ;->>
GRutsch, Luc :-?
GRutsch auch von mir ;o)
28.12.2011 17:11:01
mir
... auch an den selbsternannten "Querulant" ;-))
Gruß Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Range("A1").Paste: Einfache Methoden und Lösungen


Schritt-für-Schritt-Anleitung

  1. Kopiere einen Zellbereich. Zum Beispiel:

    Range("D10").Copy
  2. Füge den Inhalt in die Zielzelle ein. Die direkte Verwendung von .Paste in Kombination mit einem Range-Objekt ist nicht möglich. Stattdessen kannst du:

    ActiveSheet.Paste Destination:=Range("A1")

    verwenden, um den Inhalt ohne vorheriges Selektieren der Zelle einzufügen.

  3. Alternativ kannst du auch den Wert direkt zuweisen, wenn du nur einen Wert kopieren möchtest:

    Range("A1").Value = Range("D10").Value

Häufige Fehler und Lösungen

  • Fehler: "Method 'Paste' of object 'Range' failed."

    • Lösung: Die .Paste Methode ist an das ActiveSheet-Objekt gebunden, nicht an ein Range-Objekt. Verwende immer ActiveSheet.Paste.
  • Fehler: Nichts wird eingefügt, wenn kein Bereich kopiert ist.

    • Lösung: Stelle sicher, dass du tatsächlich etwas kopiert hast, bevor du versuchst einzufügen. Überprüfe den CutCopyMode:
      If Application.CutCopyMode = False Then Exit Sub

Alternative Methoden

  • Verwendung von PasteSpecial: Wenn du spezielle Werte oder Formate einfügen möchtest, kannst du PasteSpecial verwenden:

    Range("A1").PasteSpecial xlPasteValues

    Diese Methode ist nützlich, um nur die Werte ohne Formatierungen einzufügen.

  • Direkte Zuweisung von Werten: Wenn du nur einen Teil eines Zellinhalts kopieren möchtest, kannst du auch Funktionen wie MID nutzen:

    Range("A1").Value = Mid(Range("D10").Value, 2, 4)

Praktische Beispiele

  1. Kopieren und Einfügen von Werten:

    Sub CopyAndPasteExample()
       Range("D10").Copy
       ActiveSheet.Paste Destination:=Range("A1")
    End Sub
  2. Einfügen ohne .Select:

    Sub PasteWithoutSelect()
       If Application.CutCopyMode Then
           ActiveSheet.Paste Destination:=Range("A1")
       End If
    End Sub

Tipps für Profis

  • Nutze die Application.CutCopyMode-Eigenschaft, um den Status des Kopierens zu überprüfen und unerwünschte Fehler zu vermeiden.

  • Denke daran, dass das Arbeiten mit .Paste in größeren Makros oft ineffizient ist. Überlege, ob du statt dessen den Wert direkt zuweisen kannst.

  • Halte deinen Code sauber und vermeide überflüssige Selektionsbefehle, um die Ausführungszeit zu verkürzen.


FAQ: Häufige Fragen

1. Funktioniert Range("A1").Paste in allen Excel-Versionen? Ja, Range("A1").Paste funktioniert nicht, weil die Paste-Methode nicht auf Range-Objekte angewendet werden kann. Stattdessen solltest du die Paste-Methode des ActiveSheet verwenden.

2. Wie kann ich nur Werte ohne Formate einfügen? Verwende Range("A1").PasteSpecial xlPasteValues, um nur die Werte ohne Formatierungen einzufügen.

3. Ist es möglich, einen Teil des Zellinhalts zu kopieren? Ja, du kannst Funktionen wie MID verwenden, um Teile des Zellinhalts zu extrahieren und in eine andere Zelle einzufügen.

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