粘贴数字避免在目标上的公式

时间:2017-10-20 15:43:26

标签: excel-vba paste formulas vba excel

我有一个宏可以将值复制并粘贴到电子表格的不同列中。在目标列上,我有一些公式,当宏粘贴值时我需要避免覆盖,因为我实际上希望公式计算新值。我已经创建了一个代码,但我真的很感谢你帮助添加条件以避免粘贴目标上有公式的地方。

Sub RawDataNew()
'
' RawDataNew Macro
' To move validated to previous week on raw data tab
'
    Range("$B$17:$AQ$2572").AutoFilter Field:=6
    Range("Z18:AB2572").Select
    Selection.Copy
    Range("AU18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H18:H2572").Select
    Selection.Copy
    Range("AR18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("O18:O2572").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AS18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("W18:W2572").Select
    Selection.Copy
    Range("AX18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("X18:X2572").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("AY18").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Range("G4").FormulaR1C1 = "=TODAY()"
    Range("G4").Value = Date

    Range("G5").Value = Environ("username")
'
End Sub

1 个答案:

答案 0 :(得分:0)

您使用的粘贴方法Paste:=xlPasteAll仅粘贴值;如果您需要公式和值,则需要Paste:=xlPasteFormulas

如果您只想要公式,则需要=

请参阅link了解其他可选参数

另一个建议是使用Range("A1").value = Range("B1").value方法,即。     plugins 由于复制/粘贴方法非常慢,尤其是当您拥有与此处使用的数据一样多的数据时。此外,您将从复制的单元格中获取所有额外的格式,这对于处理

来说非常烦人