为什么程序在实现自动填充VBA后变得缓慢?

时间:2017-07-20 13:57:52

标签: excel vba excel-vba

我的问题是程序如何更快,它工作正常但在添加以下行后,程序需要很长时间才能加载。

Application.ScreenUpdating = False

Cells(2, 11).AutoFill Destination:=Range(Cells(2, 11), Cells(500, 11)), Type:=xlFillDefault

Cells(2, 12).AutoFill Destination:=Range(Cells(2, 12), Cells(500, 12)), Type:=xlFillDefault

Cells(2, 13).AutoFill Destination:=Range(Cells(2, 13), Cells(500, 13)), Type:=xlFillDefault

Application.ScreenUpdating = True

这些行是因为有些公式需要在列中,所以在实现它们之前,那些行有一个公式需要向下拖动的单元格,但每次添加或删除行时,用户必须每次拖动公式。因此,这些行的实现将阻止用户拖动公式,但程序现在需要时间来加载。有没有办法让这个编码更快?每行使用的公式是

= D2-(H2 + I2 + J2)细胞K2

= H2 + I2 + J2 Cell L2

= IF(K2 = 0,“完成”)细胞M2

这是模块中的整个代码

Sub plating_input()

Dim UsdRws As Long
Dim i As Long

Application.ScreenUpdating = False

UsdRws = Range("A1").CurrentRegion.Rows.Count

For i = UsdRws To 2 Step -1

        If Range("M" & i).Value Like "Complete" Then
            Rows(i).Copy Sheets("Complete").Range("A" & Rows.Count).End(xlUp).Offset(1)
            Rows(i).Delete
        End If

Next i



Application.ScreenUpdating = True

'------------------------------------------------------

UserForm2.Show
''
Application.ScreenUpdating = False
Cells(2, 11).AutoFill Destination:=Range(Cells(2, 11), Cells(500, 11)), Type:=xlFillDefault
Cells(2, 12).AutoFill Destination:=Range(Cells(2, 12), Cells(500, 12)), Type:=xlFillDefault
Cells(2, 13).AutoFill Destination:=Range(Cells(2, 13), Cells(500, 13)), Type:=xlFillDefault
Application.ScreenUpdating = True

End Sub

0 个答案:

没有答案