根据第三张纸中的某些条件将数据从一张纸复制到另一张纸?当我运行此代码时,Excel有时会崩溃

时间:2019-06-21 06:01:00

标签: vba

我目前正在处理3个文件:新文件(Sht)-在其中写入宏,另外两个文件是wsSource和wsDest。新文件中约有1000行,wsSource中有约1000行。 LastRowAT是新文件的最后一行。 LastRowKS是wsDest的最后一行。 该代码匹配特定条件,然后根据这些条件将数据从wsSource复制到wsDest。 现在,因为我使用的是for循环并嵌套if,所以excel有时会崩溃并必须重新启动。 我可以以任何方式优化这段代码,以便花费更少的时间运行,更重要的是不会崩溃吗? P.S这只是示例数据。实际数据将在wsSource文件

中包含约100,000行
For i = 2 To LastRowAT
    If sht.Range("B" & i).Value = "Khusbhu Singh" And sht.Range("D" & i).Value = "Allocated" And sht.Range("C" & i).Value = Max_date Then
        If sht.Range("A" & i).Value = Workbooks("CISF.xlsx").Worksheets("QUIDAM-INSURERS").Range("A" & i).Value Then
            Set rngCopy = wsSource.Range("A" & i & ":V" & i)
            rngCopy.Copy wsDest.Cells(LastRowKS, "I")
            wsDest.Cells(LastRowKS, "I").Resize( _
            rngCopy.Rows.Count, rngCopy.Columns.Count).Value = rngCopy.Value
            wsDest.Range("A" & LastRowKS).Value = "Khusbhu Singh"
            wsDest.Range("B" & LastRowKS).Value = Max_date
            LastRowKS = LastRowKS + 1
        End If
    End If
Next i

0 个答案:

没有答案