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

paste values mit VBA

Forumthread: paste values mit VBA

paste values mit VBA
mika
Gibt es eine Möglichkeit folgende copy&paste Anweisung kürzer und eleganter zu formulieren?
Beste Grüße,
Mika
Range("D18").Select
Application.CutCopyMode = False
Selection.Copy
Windows("x.xls").Activate
Range("C18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Anzeige

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

Betreff
Benutzer
Anzeige
AW: paste values mit VBA
Ulf
Machs ohne select und activate.
Ulf
AW: paste values mit VBA
Heinz
Hallo Mika,
z.B. so:

Sub Test()
Range("D18").Copy
Windows("x.xls").Worksheets(1).Range("C18").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

Gruß
Heinz
vielen Dank!
25.03.2004 12:11:54
mika
Gruß,
mika
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Effizientes Arbeiten mit Paste Values in VBA


Schritt-für-Schritt-Anleitung

Um Werte aus einer Zelle in eine andere Zelle zu kopieren, ohne die Formatierungen oder Formeln zu übertragen, kannst Du die PasteSpecial-Methode in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne das Visual Basic for Applications (VBA) Fenster in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Schreibe den folgenden Code:
Sub PasteValuesExample()
    Range("D18").Copy
    Windows("x.xls").Worksheets(1).Range("C18").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub
  1. Schließe das VBA-Fenster und führe das Makro aus.

Mit diesem Code wird der Inhalt von Zelle D18 in Zelle C18 als Wert eingefügt, ohne die Formatierungen oder Formeln zu übernehmen.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Objekt erforderlich": Stelle sicher, dass das Arbeitsblatt, auf das Du zugreifen möchtest, auch tatsächlich existiert und korrekt referenziert wird.

  • Falsche Zelle wird aktualisiert: Überprüfe, ob Du die richtige Zellreferenz in Range("C18") angegeben hast.

  • Keine Werte eingefügt: Stelle sicher, dass Du die richtige Methode verwendest. PasteSpecial Paste:=xlPasteValues ist entscheidend, um nur die Werte zu übertragen.


Alternative Methoden

Es gibt mehrere Wege, um Werte in Excel VBA zu kopieren und einzufügen:

  • Direktes Zuweisen: Anstatt Copy und PasteSpecial zu verwenden, kannst Du die Werte direkt zuweisen:
Sub DirectAssignmentExample()
    Worksheets("Sheet1").Range("C18").Value = Worksheets("Sheet1").Range("D18").Value
End Sub
  • Verwendung von Value für die gesamte Range:
Sub CopyValuesOnly()
    Worksheets("Sheet1").Range("C18").Value = Worksheets("Sheet1").Range("D18").Value
End Sub

Diese Methode ist oft schneller und benötigt weniger Ressourcen.


Praktische Beispiele

Hier sind einige praktische Beispiele, um die PasteSpecial-Methode in verschiedenen Szenarien zu verwenden:

  1. Kopieren und Einfügen von Werten aus einer anderen Arbeitsmappe:
Sub CopyFromAnotherWorkbook()
    Workbooks("source.xlsx").Worksheets(1).Range("A1").Copy
    Workbooks("destination.xlsx").Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
End Sub
  1. Einfügen von Werten in eine Liste:
Sub AppendValues()
    Dim lastRow As Long
    lastRow = Worksheets("List").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Range("D18").Copy
    Worksheets("List").Cells(lastRow, 1).PasteSpecial Paste:=xlPasteValues
End Sub

Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung Deines Makros zu deaktivieren. Dies kann die Geschwindigkeit erhöhen.

  • Setze Fehlerbehandlung ein, um sicherzustellen, dass das Makro nicht abstürzt, wenn etwas Unerwartetes passiert:

On Error Resume Next
' Dein Code hier
On Error GoTo 0
  • Nutze With-Anweisungen, um den Code lesbarer und effizienter zu gestalten:
With Worksheets("Sheet1")
    .Range("D18").Copy
    .Range("C18").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End With

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen PasteSpecial und normalem Paste? PasteSpecial ermöglicht es Dir, spezifische Elemente wie nur Werte, Formate oder Formeln einzufügen, während Paste alles überträgt.

2. Wie kann ich sicherstellen, dass ich nur Werte und keine Formate einfüge? Verwende die Methode PasteSpecial mit dem Argument Paste:=xlPasteValues, um sicherzustellen, dass nur die Werte übertragen werden.

3. Funktioniert dies in allen Excel-Versionen? Ja, die beschriebenen Methoden sind in den meisten Excel-Versionen verfügbar, die VBA unterstützen. Achte darauf, dass Du die korrekte Syntax verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige