excel - 如何最小化我的代码的运行时间?
问题描述
我有模板选项卡,我需要为列表中的每个数字填充。我下面的代码基本上复制了列表中每个数字 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