vba excel如何粘贴没有字体/颜色/ bg颜色格式的值

我有一个macros来复制一系列工作表中的每一个的摘要行。 汇总行特别使用font / font color / bg颜色进行格式化,但是当粘贴到“sumamry sheet”中时,只需要粘贴值而不进行格式化。

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应该可以工作,但是没有任何的格式化,不知道我在这里做错了什么。 它确实粘贴了值而不是引用的值,所以这很好。 我有一个macros来重置循环中的格式,但我想提高效率。 我正在使用Excel 2007。

那太奇怪了!

原因是你正在复制,插入,然后粘贴。 尝试插入,复制,然后粘贴:

 '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 

对于它的价值,我有使用复制和粘贴的问题。 这意味着,当你的macros运行时,你不能做其他事情。

既然它是一个固定的范围,我会build议这样做:

 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 
 ActiveSheet.Range("A1").EntireRow.Copy ActiveSheet.Range("A2").EntireRow.PasteSpecial xlPasteValues Application.CutCopyMode = False 

要么

 ActiveSheet.Range("A2").EntireRow.Value = ActiveSheet.Range("A1").EntireRow.Value 

将A1replace为源代码,将A2replace为您的目标。

一旦我select了范围,然后我把这个

  Selection.PasteSpecial粘贴:= xlPasteValues,操作:= xlNone 

为我工作正常:)