Я искал и искал это и подошел близко, но не идеально. Вот оно...
Мне нужен код для последовательной работы с другими рабочими книгами Excel и копирования данных. Файлы будут называться 1,2,3,4 и т. д., всего до 60 макс. У меня есть код, который откроет все файлы для меня, и это прекрасно работает. Затем мне нужно, чтобы он зашел во все рабочие книги, скопировал данные настройки и вернул их в основную рабочую книгу, что я тоже смог сделать. Вот мои проблемы...
Я знаю, что должен быть способ написать код один раз и заставить его работать с оставшимися файлами. IE. если первый файл называется 1.csv, может ли код сказать, что нужно сделать это на 1.csv, затем на 1.csv + 1, что означает 2.csv, а затем выйти из цикла? Кажется, что это должно быть в состоянии сделать это. Я не хочу вручную писать один и тот же код для копирования из 1.csv в 60.csv.
Если есть способ зациклить его, то как закончить конец, если часть. В IE в одну неделю может быть 37 файлов, в следующую — 40 и так далее. Я хочу, чтобы он начинался с файла 1.csv и работал до тех пор, пока не дойдет до последнего активного файла 37.csv или 60.csv, а затем завершится, если файла 38.csv нет.
Вот основной записанный код, который у меня есть.
Public Sub testr()
Dim filenum As Integer
Dim lastrow As Long
filenum = 1
On Error GoTo my_handler
Do
Windows(filenum & ".CSV").Activate
Range("A25").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("test.xlsm").Activate
Range("A1").Select
lastrow = Worksheets("Data").Cells(1, 1).End(xlDown).Row
ActiveSheet.Paste
filenum = filenum + 1
Loop
my_handler:
MsgBox "All done."
Exit Sub
End Sub
Любая помощь, которую кто-либо мог бы дать мне, была бы потрясающей! Заранее спасибо~