Werte und Formate mit VBA kopieren
Schritt-für-Schritt-Anleitung
Um in VBA nur Werte und Formate zu kopieren, kannst du die folgenden Schritte befolgen:
-
Öffne den Visual Basic for Applications (VBA) Editor in Excel.
-
Füge ein neues Modul hinzu.
-
Verwende den folgenden VBA-Code:
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteFormats
End With
-
Stelle sicher, dass du die richtigen Variablen wie cZeile_1
, cZeile_L
, cSpalte_Copy
, cZeileName
und lngSpalte
definiert hast.
Dieser Code kopiert nur die Werte und Formate in das Zielblatt.
Häufige Fehler und Lösungen
-
Fehlermeldung "Bekanntes Argument nicht gefunden":
- Stelle sicher, dass
PasteSpecial
in einer eigenen Codezeile steht, wie im oben genannten Beispiel.
-
Kopieren der Formeln anstelle der Werte:
- Nutze
xlPasteValues
in der PasteSpecial
-Methode, um nur die Werte zu kopieren.
Alternative Methoden
Wenn du eine andere Methode bevorzugst, kannst du die Value
-Eigenschaft verwenden, um Werte direkt zu kopieren:
wksGesamt.Cells(cZeileName + 1, lngSpalte).Value = wksName.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Value
Um die Formate zu kopieren, könntest du zusätzlich wksGesamt.Cells(cZeileName + 1, lngSpalte).Interior.Color = wksName.Cells(cZeile_1, cSpalte_Copy).Interior.Color
verwenden, um die Hintergrundfarbe zu kopieren.
Praktische Beispiele
Hier ist ein Beispiel, das die Verwendung der vba pastespecial werte und formate
zeigt:
Sub CopyValuesAndFormats()
Dim wksName As Worksheet
Dim wksGesamt As Worksheet
Dim cZeile_1 As Long, cZeile_L As Long
Dim cSpalte_Copy As Long, cZeileName As Long, lngSpalte As Long
Set wksName = ThisWorkbook.Sheets("Quellblatt")
Set wksGesamt = ThisWorkbook.Sheets("Zielblatt")
cZeile_1 = 1
cZeile_L = 10
cSpalte_Copy = 1
cZeileName = 1
lngSpalte = 2
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteFormats
End With
End Sub
Dieses Beispiel zeigt, wie du die Werte und Formate von einem Quellblatt in ein Zielblatt kopierst.
Tipps für Profis
- Verwende
Application.CutCopyMode = False
, um den Kopiermodus zu beenden und das Blinken der Auswahl zu stoppen.
- Du kannst die
Cells.Copy
-Methode verwenden, um eine gesamte Zelle zu kopieren, jedoch nur, wenn du weißt, dass die Zieldaten keine Formeln enthalten.
FAQ: Häufige Fragen
1. Wie kann ich nur die Formate ohne die Werte kopieren?
Um nur die Formate zu kopieren, kannst du Paste:=xlPasteFormats
verwenden.
2. Welche Excel-Version benötige ich für diese VBA-Methoden?
Diese VBA-Methoden sind in Excel 2010 und neueren Versionen verfügbar.