这是最有效的代码编写方式吗?

时间:2019-07-05 21:06:34

标签: excel vba

id_h nhunts
1    3
2    2

在宏中,我做了很多粘贴值,我只是想知道是否有一种更有效的方式来编写上述代码。

2 个答案:

答案 0 :(得分:2)

我认为您尝试做的最快方法是:

Sub Test()

Dim LR As Long
With ThisWorkbook.Sheets("Sheet1")
    LR = .Range("D" & Rows.Count).End(xlUp).Row
    .Range("F4:F" & LR).Value = .Evaluate("D4:D" & LR & "*-1")
End With

End Sub

供以后参考,需要.PasteSpecial时进行复制/粘贴需要excel将数据存储在Clipboard中,这意味着需要更多时间来运行宏。指定Destination参数时,仅复制/粘贴一个范围将绕过此范围。省略此设置将再次将范围存储在Clipboard上。

通常,您通常可以避免使用复制/粘贴!

答案 1 :(得分:0)

如@BigBen所建议,但是使用了With/End With语句...

Sub test()
    Dim LR As Long
    LR = Range("D" & Rows.Count).End(xlUp).Row
    With Range("F4:F" & LR)
        .Formula = "=D4*-1"
        .Value = .Value
    End With
End Sub