Ich bin ziemlich neu in diesem Zeug, das Schreiben von Makros in Excel. Ich muss ein Makro ändern, wo Inhalt von 1 Blatt zu einem anderen kopiert wird, aber hier werden nur Werte kopiert, während ich auch Zellformatierung kopieren möchte. Ich habe in mehreren Foren gesucht und versucht, ihre Formate zu kopieren, aber immer noch kein Glück. Vielleicht verpasse ich etwas in meinem Code.Kopieren von Werten und Format in VBA-Makro Excel
strActiveSheet - Blatt aus dem Inhalt
res kopiert wird - Blatt, auf dem Inhalt
With Sheets(strActiveSheet)
.Select
.Range(.Cells(DataStartRow - 1, 1), .Cells(DataStartRow - 1, 4)).Select
Selection.Copy
End With
'Paste
Sheets(res).Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Dieser Code kopiert den Wert gerade eingefügt wird. Ich habe versucht, den folgenden Code zu verwenden, aber ohne Erfolg:
Sheets(res).Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Wenn ich den folgenden Code verwenden, wird dies nur die Formatierung kopieren, sondern die Werte weglassen:
Sheets(res).Select
Cells(9, 1).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
sein Darf ich glaube, ich Ich schreibe PasteSpecial Code nicht im richtigen Format.
Kann mir bitte jemand helfen, das richtige Format zum Kopieren und Einfügen von Werten sowie Zellenformat von einem Blatt in ein anderes in VBA zu bekommen?
Darren - Ich habe meinen Code bearbeitet und verwendet, wie Sie in Ihrer Antwort angegeben haben:
Dim wrkSht As Worksheet
Set wrkSht = ThisWorkbook.Worksheets("Sheet1")
Dim resSheet As Worksheet
Set resSheet = ThisWorkbook.Worksheets("Demo")
With wrkSht
.Range(.Cells(DataStartRow - 1, 1), .Cells(DataStartRow - 1, 4)).Copy
End With
With resSheet
.Cells(9, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Cells(9, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
Aber noch ist es zu geben Nummer als Format auf meine Zellen anstelle der benutzerdefinierten eine, die Zelle zugeordnet ist, in Tabelle1.
Können Sie mir bitte helfen, wenn ich etwas in diesem Code verpasse?
Sie müssen auf meine Antwort antworten oder meinen Benutzernamen mit @ davor schreiben - sonst erhalte ich keine Benachrichtigung über ein Update. Versuchen Sie, 'xlValues' in' xlPasteValuesAndNumberFormats' in PasteSpecial zu ändern. –
Funktionierte noch nicht mit xlPasteValuesAndNumberFormats – user2091061
Ich habe gerade Ihren Code getestet - ich musste "DataStartRow" einen Wert von 2 geben, so dass es aus Zeile 1 kopieren würde. Es kopiert die Formatierung von "Burt:" #, ## 0.00; [Rot] - #, ## 0.00' ohne Probleme. Welches Zahlenformat verwenden Sie und für welche Werte verwenden Sie es? Sind die Zahlen als Text formatiert? –