У меня есть файл Excel и 7 листов. В 5 из них есть много предварительно заполненных формул, а в одной из них много текстовых данных (75000 строк).
И на 7-м и последнем листе есть некоторые данные, извлеченные из 6-го листа (примерно 6-7). % от этого). Для 7-го листа я создал макрос VBA, который будет выполнять некоторую обработку текста. Если я удаляю первые 6 листов, оставляю только последний и запускаю макрос, время выполнения подсвечивается быстро.
Проблема в том, что я предпочел бы сохранить первые 6 листов и запустить макрос,Но в этом случае время выполнения чрезвычайно медленное.
Существует ли какой-либо код или возможность каким-либо образом выгрузить первые 6 листов из памяти, чтобы выполнение макроса было быстрым?
Я попытался использовать следующие параметры для оптимизации памяти и времени выполнения, но ничего не помогло.
Public CalcState As Long
Public EventState As Boolean
Public PageBreakState As Boolean
Sub OptimizeCode_Begin()
Application.ScreenUpdating = False
EventState = Application.EnableEvents
Application.EnableEvents = False
CalcState = Application.Calculation
Application.Calculation = xlCalculationManual
PageBreakState = ActiveSheet.DisplayPageBreaks
ActiveSheet.DisplayPageBreaks = False
End Sub
Код, который я использую на 7-м листе:
Sub Itemsperlinestep1()
'Optimize Code
Call OptimizeCode_Begin
Dim cell, ra3 As Range
Set ra3 = Sheets("Sheet1").Range("B1:XFD1")
Do While True
CountAA = Range("A2").Value
For Each cell In ra3:
If InStr(cell.Value, "<itemdata") Or InStr(cell.Value, "<figure") Then
ElseIf cell.Value <> "" Then
cell.Offset(0, -1) = cell.Offset(0, -1).Value & " " & cell.Value
Sheets("Sheet1").Columns(cell.Column).EntireColumn.Delete
End If
Next cell
Check = Range("A2").Value
If CountAA = Check Then
Exit Do
End If
Loop
'Optimize Code
Call OptimizeCode_End
Set ra3 = Nothing
End Sub