Я ищу помощи в улучшении скорости этого макроса. Он является частью гораздо большего макроса, но после тестирования каждой его части в отдельности этот раздел занимает 98% времени. Всего этот макрос занимает около 25-30 минут. В рабочей тетради всего 12 листов. Каждый лист содержит около 200 строк и 50 столбцов, но это не имеет большого значения для этого фрагмента кода. Я не уверен, есть ли лучший способ сделать это или у вас есть какие-либо идеи, почему это занимает так много времени.
Я использую 64-разрядную версию Excel 2016 на процессоре Intel I5-6300U с тактовой частотой 2,4 ГГц, с турбонаддувом до 3 ГГц. Во время запуска этого марко я бью около 2,85 ГГц без запуска других программ. 8 ГБ ОЗУ.
Sub step3()
Dim sht As Worksheet
Application.ScreenUpdating = False
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> "Directions" Then
'Update months in colA
sht.Range("A5").Formula = "=EOMONTH(TODAY(),-1)"
sht.Range("A6").Formula = "=EOMONTH(TODAY(),-2)"
sht.Range("A7").Formula = "=EOMONTH(TODAY(),-3)"
sht.Range("A5:A7").Copy
sht.Range("A5:A7").PasteSpecial xlPasteValues
End If
Next sht
Application.ScreenUpdating = True
End Sub