首页 > 解决方案 > 如何最小化我的代码的运行时间?

问题描述

我有模板选项卡,我需要为列表中的每个数字填充。我下面的代码基本上复制了列表中每个数字 id 的模板选项卡,并根据列表中的数字对其进行重命名。例如,如果列表中存在数字 1000,则将创建一个名为 1000 的新选项卡(与模板选项卡相同)并包含有关 id 1000 的信息。我面临的问题是代码需要很长时间才能运行. 该列表包括大约 300 个号码,运行大约需要 10 分钟。

我的代码非常简单(抱歉,我对 VBA 没有太多经验)。此外,它还调用了另一个非常简单的 sub。

能否请您告诉我,什么可以最大程度地减少运行时间?

非常感谢您提前抽出时间。

Sub NEW_ID()

Application.ScreenUpdating = False
Application.DisplayStatusBar = False


Dim no_loans As Long
Dim MyRange As Range
no_ids = Sheets("List of IDs").Range("C2")

Set MyRange = Sheets("List of IDs").Range("D3:D1000")

For i = 1 To no_ids

    Sheets("Template").Copy after:=Worksheets(Sheets.Count)

    ActiveSheet.Name = MyRange(i)

    ActiveSheet.Range("L1").Value = MyRange(i)

   Call new_collateral


Next i


Application.ScreenUpdating = True
Application.DisplayStatusBar = True

End Sub




Sub new_collateral()


Application.ScreenUpdating = False
Application.DisplayStatusBar = False

Dim coll As Long
Dim LastRow As Long

coll = ActiveSheet.Range("N1")

For i = 1 To coll - 1

    LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

    ActiveSheet.Range("A184:J245").Copy

    ActiveSheet.Range("A" & LastRow).PasteSpecial

    ActiveSheet.Range("L" & LastRow).Value = i + 1

Next i


Application.ScreenUpdating = True
Application.DisplayStatusBar = True

End Sub

标签: excelvba

解决方案


推荐阅读