如何在Excel中只粘贴值

我对Excel很陌生,对于这个论坛来说是全新的。

我从下面的论坛采取了代码,并将其修改为我的需要。

http://pressf1.pcworld.co.nz/showthread.php?90122-Creating-Macro-to-copy-and-paste-data-into-the-next-empty-column 。

Sub copyTotals() Dim TargetSht As Worksheet, SourceSht As Worksheet, SourceRow As Integer, SourceCells As Range Set SourceSht = ThisWorkbook.Sheets("DUN - Jan") Set TargetSht = ThisWorkbook.Sheets("DUN Jan - Jan,Feb,Mar,Apr") Set SourceCells = SourceSht.Range("L36,N36") If TargetSht.Range("C11").Value = "" Then SourceRow = 1 ElseIf TargetSht.Range("C41") <> "" Then MsgBox ("The sheet is full, you need to create a new sheet") Else SourceRow = TargetSht.Range("C41").End(xlUp).Row + 1 End If SourceCells.Copy TargetSht.Cells(SourceRow, 3) End Sub 

问题是,粘贴的值有源的格式,我只想粘贴值。

有人可以帮助我这个。

与.PasteSpecial一起使用.Copy。 代替:

 SourceCells.Copy TargetSht.Cells(2, SourceCol) 

做这个:

 SourceCells.Copy TargetSht.Cells(2, SourceCol).PasteSpecial xlPasteValues 

使用macroslogging器产生这种事情。 卡住时我用了很多。

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

你不需要复制和粘贴来做到这一点(至less在Excel 2010及以上,我认为)。 您只需将范围的.Value设置为等于自己。 例如:

 rng.Value = rng.Value 

要么

 Sheet1.Range("A1:A10").Value = Sheet1.Range("A1:A10").Value 

因为.Value“返回或设置表示指定范围的值的Variant值”。

请注意,这只适用于值,而不是格式。

http://msdn.microsoft.com/en-us/library/office/ff195193(v=office.15).aspx

在单元格中右键单击并select粘贴专用,然后您只能select值

编辑:macros的原理相同的使用.PasteSpecial xlPasteValues喜欢这里

 Set rng6 = .Range("A3").End(xlDown).Offset(0, 41) rng6.Copy ActiveSheet.Paste Destination:=Worksheets("Positions").Range("W2")