vba excel wie Sie Werte einfügen, ohne schriftart/ - Farbe/Hg Farbe Formatierung

StackOverflow https://stackoverflow.com/questions/1610141

  •  05-07-2019
  •  | 
  •  

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.

War es hilfreich?

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 :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top