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

Forumthread: VBA Copy nur Werte und Formate

VBA Copy nur Werte und Formate
03.02.2013 01:38:07
Uwe
Hallo,
ich habe in meinem Makro folgendn Kopierbefehl:
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy _
Destination:=wksGesamt.Cells(cZeileName + 1, lngSpalte)
Application.CutCopyMode = False
Dieser Befehl kopiert aber die komplette Zelle, einschl. Rechenoperationen, welche in der anderen Arbeitsmappe aber nicht funktionieren.
Der copy-Befehl soll nur die Werte samt Formate kopieren.
Was muss ich ändern?
Vielen Dank für eure Hilfe
Uwe

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 01:50:34
Luc:-?
:-?

AW: Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 05:05:12
Uwe
Hallo Luc
Habe den Befehl PasteSpezial hinzugefügt, jetzt kommt aber die Fehlermeldung "Bekanntes Argument nicht gefunden"
'Daten kopieren
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy _
Destination:=wksGesamt.Cells(cZeileName + 1, lngSpalte)
.PasteSpecial Paste:=xlPasteValues
Wie lautet denn der richtige Befehl?
Danke für Deine Hilfe
mit freundlichen Grüßen
Uwe

Anzeige
AW: Copy & PasteSpecial (nachlesen)! Morrn! owT
03.02.2013 06:53:51
hary
Moin Uwe
Copy und Pastspecial gehoeren in eine eigene Codezeile.
With wksName
.Range(.Cells(cZeile_1, cSpalte_Copy), .Cells(cZeile_L, cSpalte_Copy)).Copy
wksGesamt.Cells(cZeileName + 1, lngSpalte).PasteSpecial Paste:=xlPasteValues
End With

gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel.

  2. Füge ein neues Modul hinzu.

  3. 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
  4. 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

  1. Fehlermeldung "Bekanntes Argument nicht gefunden":

    • Stelle sicher, dass PasteSpecial in einer eigenen Codezeile steht, wie im oben genannten Beispiel.
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige