从开发人员窗格运行时,宏运行较快,但从用户窗体调用时,极端运行较慢

时间:2019-10-09 18:21:43

标签: excel vba

我以两种不同的方式在Excel中运行同一段VBA代码。  1.在开发人员标签中,花费不到2秒的时间。  2.从用户表单调用宏,耗时一分钟,然后冻结

代码如下:

Sub Import()

Dim wbSource As Workbook
Dim wbDest As Workbook
Dim TargetSheet As Worksheet
Dim c As Range
Dim rng As Range
Dim i As Integer
Dim MyRange As Range
Dim SourceSheet As Worksheet
Dim source As String
Dim dest As String
Dim r As Range
Dim msg As String


source = Worksheets("Set-Up").Range("B11")
dest = Worksheets("Set-Up").Range("B8")

Set wbSource = Workbooks(source)
Set SourceSheet = wbSource.Worksheets("HFL01 Extract")
Set wbDest = Workbooks(dest)
Set TargetSheet = wbDest.Worksheets("INPUTS1")

    With SourceSheet.Range("A1").CurrentRegion
        For Each r In TargetSheet.Range("A1:N1") 'Range("A1:cc1")
            Set c = .Rows(1).Find(r.Value, , , xlWhole, , 0)
            If Not c Is Nothing Then
                .Columns(c.Column).Copy
                r.PasteSpecial xlPasteValues

            End If
        Next
        Application.CutCopyMode = False
    End With

Set fileDialog = Nothing
Set wbSource = Nothing

End Sub

为什么以不同方式运行宏会使其变慢?从用户表单调用宏后,如何使宏以相同的速度运行?

0 个答案:

没有答案