Я написал макрос в Excel VBA, который в основном копирует и вставляет 53 строки 1440 раз, одну под другой, чтобы заполнить два столбца в таблице строк ~ 70000. Макрос работает, но для полного запуска требуется около пяти минут. Это было бы хорошо, если бы мне не нужно было запускать это на ~ 1000 других файлов. Я ищу способ ускорить этот процесс, чтобы он не занимал 5 дней.
Я пытался использовать метод копирования диапазона:
Set range1 = {the table I'm copying}
Set range2 = {the cells I want to paste into}
range1.Copy range2
но это заняло столько же времени, если не дольше.
Вот мой текущий код:
Windows("as_built_comp.xlsm").Activate
Sheets(siteName).Activate
j = Cells(Rows.Count, 1).End(xlUp).Row
Range("C2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
wb.Activate
Range("I12").Select
For i = 1 To 1440
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=56
ActiveCell.Offset(j - 1, 0).Select
Next i
Я думаю, что решение может иметь какое-то отношение к использованию sql в VBA, но я еще не изучил этот синтаксис. В любом случае, любой совет очень ценится. Спасибо за чтение!