vba excel wie Sie Werte einfügen, ohne schriftart/ - Farbe/Hg Farbe Formatierung
Frage
Ich habe ein makro zum kopieren einer Zeile mit der Zusammenfassung von jeder von einer Reihe von Arbeitsblättern.Die zusammenfassungszeile ist speziell formatiert: schriftart/Schriftfarbe/Hintergrundfarbe, aber beim einfügen in die 'sumamry Blatt', es muss nur Werte einfügen ohne Formatierung.
For LoopIndex = StartIndex To EndIndex
' start in a task sheet
Sheets(LoopIndex).Select
CopiedCells = ActiveSheet.Range("A156:L156").Copy
' now move to Summary sheet
Sheets("Summary Sheet").Select
ActiveSheet.Range("A8").Select
ActiveCell.EntireRow.Insert
ActiveCell.PasteSpecial Paste:=xlPasteValues
' tried variations of: ActiveCell.PasteSpecial paste:=xlValues, operation:=xlPasteSpecialOperationNone
Application.CutCopyMode = False ' clears clipboard
Next LoopIndex
All die Forschung, die ich getan habe, sagt der PastSpecial, xlValues, xlPasteValues sollte funktionieren, aber nichts von den Streifen Formatierung, weiß nicht, was ich falsch mache hier.Es tut fügen Sie die Werte anstatt der referenzierten Werte, so dass ist gut.Ich habe ein makro zum zurücksetzen der Formatierung in der Schleife, aber ich würde gerne effizienter zu machen.Ich verwende Excel 2007.
Lösung
Das ist wirklich seltsam!
Der Grund dafür ist, dass Sie Kopieren, Einfügen und Einfügen.Versuchen Sie Einfügen, Kopieren und dann Einfügen:
'we must commence on the Summary Sheet
Sheets("Summary Sheet").Select
For LoopIndex = StartIndex To EndIndex
' insert the row before we start
ActiveSheet.Range("A8").Select
ActiveCell.EntireRow.Insert
' select the task sheet
Sheets(LoopIndex).Select
CopiedCells = ActiveSheet.Range("A156:L156").Copy
' now move to Summary sheet
Sheets("Summary Sheet").Select
ActiveCell.PasteSpecial Paste:=xlPasteValues
' tried variations of: ActiveCell.PasteSpecial paste:=xlValues, operation:=xlPasteSpecialOperationNone
Application.CutCopyMode = False ' clears clipboard
Next LoopIndex
Für was es Wert ist, ich habe Probleme mit copy & paste.Es bedeutet, dass, während Ihr makro ausgeführt wird, können Sie nicht viel anderes zu tun.
Da es einen festen Bereich, würde ich vorschlagen, diese:
For LoopIndex = StartIndex To EndIndex
Sheets("Summary Sheet").Range("A8").EntireRow.Insert
For i = 1 To 12
Sheets("Summary Sheet").Cells(8, i) = Sheets(LoopIndex).Cells(156, i)
Next
Next
Andere Tipps
ActiveSheet.Range("A1").EntireRow.Copy
ActiveSheet.Range("A2").EntireRow.PasteSpecial xlPasteValues
Application.CutCopyMode = False
oder
ActiveSheet.Range("A2").EntireRow.Value = ActiveSheet.Range("A1").EntireRow.Value
Ersetzen A1 mit deiner Quelle und A2 mit deinem Ziel.
Einmal wählte ich den Bereich dann lege ich diese
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Funktioniert gut für mich :)