我有一个宏可以从一系列工作表中的每个工作表中复制摘要行。摘要行采用字体/字体颜色/背景颜色进行特殊格式化,但是当粘贴到“摘要表”中时,它只需要粘贴值而无需格式化。
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。
最佳答案
这实在是太奇怪了!
原因是您正在复制、插入然后粘贴。尝试插入、复制然后粘贴:
'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
无论如何,我在使用复制和粘贴时遇到了问题。这意味着当您的宏运行时,您无法执行其他操作。
由于它是一个固定范围,我建议这样做:
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
关于excel - vba excel如何在没有字体/颜色/背景颜色格式的情况下粘贴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610141/