2017-10-20 106 views
0

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

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 
+0

这是什么语言?电子表格是什么? –

+0

也许使用Excel的标签,你会得到更多的帮助 –

+0

嗨,斯科特,这是VBA – Diego

回答

0

您使用的粘贴方法Paste:=xlPasteValues只是粘贴值;如果你想要公式以及值,你需要Paste:=xlPasteAll

如果你只是想公式,你需要Paste:=xlPasteFormulas

请参考link其他可选参数

另一个建议是使用=方法即。 Range("A1").value = Range("B1").value 由于复制/粘贴方法非常缓慢,尤其是当您现在使用的数据量更多时。此外,你会从复制的单元格中获得所有额外的格式,这可能是相当烦人的处理

+0

谢谢Maldred,但我实际上需要粘贴它作为值,挑战是,我在粘贴它的列有一个公式,我需要保持它。如果我粘贴值,它将覆盖它,如果我粘贴所有它将保留它,但其余的数据将公式提供我不需要的数据的公式。 宏中的目标需要有一个例外,以避免在公式中粘贴单元格中的值,但我不知道如何将其添加到我的宏 – Diego