У меня есть примерно 102 файла .xlsx. Из каждого из них я хочу скопировать идентичный диапазон (столбец), а затем вставить в один рабочий лист. В результате я хочу, чтобы эти столбцы были на одном рабочем столе, смежные друг с другом.102 файла копируют одинаковый диапазон от каждого до одного листа
Я не хочу этого делать простым открытием и закрытием книги.
Я бы предпочел, чтобы это работало быстро, то есть есть ли какой-либо другой метод, кроме открытия и закрытия каждого файла? Какой был бы самый быстрый способ сделать это? Может быть, некоторая возможность скопировать без открытия файла?
мне удалось очистить свой исходный код, который был:
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Wiersz = 102
For i = 1 To Wiersz
Workbooks.Open FileName:=Kat & "U" & i & ".xlsx"
Range("D11:D210").Copy
ThisWorkbook.Worksheets("Obl").Range("E1:E200").Offset(0, i).PasteSpecial xlPasteValues
Workbooks("U" & i & ".xlsx").Close
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Любой любая идея, как улучшить мой код? Он длится около минуты, я хочу, чтобы это были секунды.
Использование ADODB для выполнения SQL (в SQL?) Запрос на файлы спасут от необходимости открывать файлы (в Excel), но, похоже, для этого нужно много усилий. – YowE3K
@RonRosenfeld Я попытался открыть и закрыть 102 файла отдельно. Медленно. – Mroweczka
Вставьте свой код в вопрос, и мы сможем увидеть, что-то замедляет его. – YowE3K