[英]Copy paste as values Excel VBA
我有这段代码,但是我需要它来复制粘贴数据作为值。 我知道它可能很简单,但是我没有使用.Paste函数,所以我不知道如何转换它。 我是一个初学者。 提前谢谢了!
Sub Movetabletototal()
Dim Count As Integer
Dim copyRng As Range, pasteRng As Range
Dim totalWS As Worksheet, mixerWS As Worksheet
Set totalWS = Worksheets("TOTAL")
Set mixerWS = Worksheets("MIXER TOTAL")
Set copyRng = mixerWS.Range("P3:Q" & mixerWS.Cells(mixerWS.Rows.Count, 17).End(xlUp).Row)
Dim newRow As Long
newRow = totalWS.Cells(totalWS.Rows.Count, 1).End(xlUp).Row
If newRow > 1 Then newRow = newRow + 1
copyRng.Copy totalWS.Range(totalWS.Cells(newRow, 1), totalWS.Cells(newRow + copyRng.Rows.Count, copyRng.Columns.Count))
End Sub
您需要在代码中使用PasteSpecial
。 将最后一行更改为此:
'.
'. Your code will be the same till here
'.
copyRng.Copy
Set pasteRng = totalWS.Range(totalWS.Cells(newRow, 1), _
totalWS.Cells(newRow + copyRng.Rows.Count, copyRng.Columns.Count))
pasteRng.PasteSpecial xlPasteValues
End Sub
或者,您可以使用如下所示的值(如上所示设置范围):
pasteRng.Value = copyRng.Value
如果您仅对值感兴趣,则无需使用Copy
, Paste
或PasteSpecial
。 相反,只需使用直接值分配即可:
Dim destinationRange as Range
With totalWs
Set destinationRange = .Cells(newRow, 1).Resize(copyRange.Rows.Count, copyRange.Columns.Count)
End With
destinationRange.Value = copyRange.Value
您也可以尝试
.PASTESPECIAL(-4163)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.