我有一个宏来复制一系列工作表中的每一个摘要行。摘要行使用字体/字体颜色/ bg颜色进行特殊格式化,但是当粘贴到“sumamry工作表”时,它只需粘贴值而不进行格式化。
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
我所做的所有研究都说过PastSpecial,xlValues,xlPasteValues应该可以工作,但没有什么可以去除格式化,不知道我在这里做错了什么。它会粘贴值而不是引用的值,因此这很好。我有一个宏来重置循环中的格式,但我想提高效率。我正在使用Excel 2007。
答案 0 :(得分:6)
这真奇怪!
原因是你正在复制,插入然后粘贴。尝试插入,复制,然后粘贴:
'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
对于它的价值,我在使用copy& amp;糊。这意味着当你的宏运行时,你不能做太多其他事情。
由于它是固定范围,我建议:
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
答案 1 :(得分:4)
ActiveSheet.Range("A1").EntireRow.Copy
ActiveSheet.Range("A2").EntireRow.PasteSpecial xlPasteValues
Application.CutCopyMode = False
或
ActiveSheet.Range("A2").EntireRow.Value = ActiveSheet.Range("A1").EntireRow.Value
将A1替换为源,将A2替换为目标。
答案 2 :(得分:4)
一旦我选择了范围,我就把这个
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
适合我的工作:)