使用VBA Selection.AutoFill提高性能

时间:2017-02-01 07:46:55

标签: excel vba excel-vba

我的代码如下:

Sub RMS()
    Application.Calculation = xlCalculationManual
    Sheets("m1").Range("A3").FormulaR1C1 = "=LEN(LEFT(m!R[2]C,FIND(""x"",m!R[2]C & "","")-1))"
    Range("A1:A3").Select
    Selection.AutoFill Destination:=Range("A1:EZ3"), Type:=xlFillDefault
    Range("A1:EZ3").Select
    Selection.AutoFill Destination:=Range("A1:EZ600"), Type:=xlFillDefault
    Range("A1:EZ600").Select
End Sub

此代码运行速度非常慢。你有什么帮助可以让这样的代码运行得更快,因为我在多张表中运行这段代码?

1 个答案:

答案 0 :(得分:5)

这会更快:

Sub RMS()
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With

    With Sheets("m1")
        .Range("A3").FormulaR1C1 = "=LEN(LEFT(m!R[2]C,FIND(""x"",m!R[2]C & "","")-1))"
        .Range("A1:A3").AutoFill Destination:=.Range("A1:EZ3"), Type:=xlFillDefault
        .Range("A1:EZ3").AutoFill Destination:=.Range("A1:EZ600"), Type:=xlFillDefault
    End With

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub