Excel VBA: Nur Werte kopieren und einfügen
Schritt-für-Schritt-Anleitung
Um in Excel VBA nur Werte zu kopieren und einzufügen, kannst du die PasteSpecial
-Methode verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du deinen Code anpassen kannst:
- Öffne den VBA-Editor: Drücke
ALT + F11
in Excel.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineArbeitsmappe)", wähle "Einfügen" und dann "Modul".
- Kopiere den folgenden VBA-Code in das Modul:
Sub copyCells()
Dim wsKopie As Worksheet, iLetzte As Long
Set wsKopie = Tabelle2
Dim lastrow As Long
lastrow = Range("A65536").End(xlUp).Row
With ActiveSheet
iLetzte = wsKopie.Cells(wsKopie.Rows.Count, 1).End(xlUp).Row + 1
.Range("C7").Copy
Sheets(2).Range("A" & iLetzte).PasteSpecial Paste:=xlPasteValues
.Range("t2").Copy
Sheets(2).Range("B" & iLetzte).PasteSpecial Paste:=xlPasteValues
.Range("y7").Copy
Sheets(2).Range("C" & iLetzte).PasteSpecial Paste:=xlPasteValues
.Range("").Copy
Sheets(2).Range("D" & iLetzte).PasteSpecial Paste:=xlPasteValues
End With
End Sub
- Ändere die Zellreferenzen entsprechend deiner Bedürfnisse.
- Starte das Makro: Gehe zurück zu Excel und führe das Makro aus.
Häufige Fehler und Lösungen
-
Fehler #REF! beim Einfügen: Dieser Fehler tritt auf, wenn du Formeln kopierst und sie auf ein anderes Blatt einfügst. Stelle sicher, dass du die Methode .PasteSpecial Paste:=xlPasteValues
verwendest.
-
"Methode Range nicht gefunden": Achte darauf, dass du die korrekten Zellreferenzen verwendest und dass das Blatt existiert.
Alternative Methoden
Falls du nicht programmieren möchtest, kannst du auch die folgenden Schritte in Excel selbst ausführen:
- Markiere die Zellen, die du kopieren möchtest.
- Drücke
STRG + C
, um zu kopieren.
- Rechtsklicke auf die Zielzelle.
- Wähle "Inhalte einfügen" und dann "Werte".
Diese Methode ist besonders nützlich, wenn du nur gelegentlich Werte kopieren und einfügen möchtest.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du mit Excel VBA nur Werte kopieren kannst:
Sub copyValuesExample()
Sheets("Tabelle1").Range("A1:A10").Copy
Sheets("Tabelle2").Range("B1").PasteSpecial Paste:=xlPasteValues
End Sub
In diesem Beispiel werden die Werte aus dem Bereich A1:A10 auf Tabelle1 in Zelle B1 auf Tabelle2 eingefügt.
Tipps für Profis
- Verwende die
Application.CutCopyMode = False
, um den Kopiermodus zu beenden, nachdem du mit dem Einfügen fertig bist. Dadurch wird die Auswahl des kopierten Bereichs aufgehoben:
Application.CutCopyMode = False
- Nutze die
With
-Anweisung, um den Code übersichtlicher zu gestalten und die Ausführung zu beschleunigen.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Zellen gleichzeitig kopieren?
Du kannst mehrere Zellen in einem Bereich auswählen, zum Beispiel Range("A1:D10")
, und dann mit PasteSpecial
die Werte einfügen.
2. Was ist der Unterschied zwischen .Copy
und .PasteSpecial
?
.Copy
kopiert sowohl den Wert als auch die Formatierung, während .PasteSpecial
dir erlaubt, nur die Werte oder nur die Formate einzufügen, abhängig von der Auswahl, die du triffst.
3. Kann ich die Kopieroperation in einer Schleife durchführen?
Ja, du kannst eine Schleife verwenden, um mehrere Bereiche nacheinander zu kopieren und einzufügen. Stelle sicher, dass du die Zellen korrekt referenzierst.