Страницы: 1
RSS
Ошибка при копировании столбца из одного файла Excel в другой
 
Есть вот такой код, мне нужно скопировать данные из одного файла в другой. Но выдает ошибку "run-time error 9: subscript out of range", не понимаю как исправить. Помогите, пожалуйста, срочно нужно. заранее спасибо
Код
Sub TestP()     
Dim fso As Object, file As Object, f$: f$ = "F:\цф"   
Dim wb As Workbook, ws As Worksheet  Set fso = CreateObject("Scripting.FileSystemObject") 
If Not fso.FolderExists(f) Then _      
MsgBox "папка не найдена", vbCritical: Exit Sub  For Each file In fso.GetFolder(f).Files         
If LCase(file.Name) Like "*.xls*" Then             
Set wb = Workbooks.Open(file.Path, 0, False)             
Set ws = wb.Worksheets(1)  
'фильтрация данных  
wb.Close True          
End If      
Next  
Workbooks(wb).Worksheets(1).Range("O1:О1000").Copy _          
Workbooks("F:\цф\ми\9.xls").Worksheets("Действующие").Range("H4:Н2000")             
End Sub  
 
Целых 4 часа прошло до кросса.  :)
Workbooks("F:\цф\ми\9.xls")
Должно быть имя книги, а не полное имя книги.
 
Кросс.
Lisaaaa, создаёте темы на нескольких форумах - информируйте об этом ссылками.
 
Не совсем поняла первое предложение.  :)  Спасибо за ответ, но убрала путь до книги, оставила только название, ошибка осталась  
 
А где файлы лежат, которые участвуют в копировании? И есть ли в файле куда копируете лист  "Действующие"
 
Есть папка в которой находится файл ИЗ которого копируется
а еще я создала папку внутри этой же папки и поместила туда файл, В который нужно копировать. Путь я попробовала прописать в workbooks.
Да, в файле В который копирую есть лист "Действующие"
Код
Dim fso As Object, file As Object, f$: f$ = "F:\цф"  
Workbooks("F:\цф\ми\9.xls").Worksheets("Действующие").Range("H4:Н2000")
Изменено: Lisaaaa - 30.05.2019 21:13:03
 
если файл ИЗ один, зачем цикл?
Попробуйте просто
Код
Sub TestP()
Workbooks("путь к файлу ИЗ которого копируем").Worksheets(1).Range("O1:О1000").Copy _          
Workbooks("F:\цф\ми\9.xls").Worksheets("Действующие").Range("H4:Н2000")
End Sub 
Изменено: bigorq - 30.05.2019 21:22:14
 
Цитата
Lisaaaa написал:
и поместила туда файл
А вы его открыть не пробовали?
Цитата
Lisaaaa написал:
срочно нужно
Гадание на кофейной гуще - далеко не самый быстрый способ решения проблемы.
 
bigorq, спасибо за вариант, но не сработало, пишет ошибку туже  
 
RAN, не совсем поняла в каком смысле открывать  
 
Конечно, не как бутылку с пивом, или кастрюлю с борщом. Как файл Excel на компьютере.
 
Если файлы открыты, то все копируется нормально. Пути к файлам в  Workbooks не нужны (как и писал ранее RAN)
 
оба файлы открыла (как обычные документы Excel) ошибка та же и в том же месте
Изменено: Lisaaaa - 30.05.2019 21:55:50
 
А файлы точно xls, а не xlsx ?
 
Один xlsx, а второй xls
 
Lisaaaa, угадайка тянется уже 2 часа, и это далеко не предел.
Может вы все-же задумаетесь, почему ответа нет?
 
Цитата
Lisaaaa написал: Один xlsx, а второй xls
через час мы узнаем еще чего нибудь нового.

и в какой из них копируете?
 

Сделала по вашим советам код получается такой:

Код
Sub TestP()
 Workbooks("1.xlsx").Worksheets(1).Range("O1").Copy _
        Workbooks("2.xls").Worksheets("Действующие").Range("H4")
End Sub

Копируем из 1 в 2

Изменено: Lisaaaa - 30.05.2019 22:23:01
 
без файлов гадать будем долго.
 
Цитата
RAN написал: Может вы все-же задумаетесь, почему ответа нет?
Какую информацию сообщить чтоб вы смогли мне помочь?
Код
Sub TestP()
Workbooks("1.xlsx").Worksheets(1).Range("E1").Copy _
Workbooks("2.xls").Worksheets("Действующие").Range("H4")
End Sub
Изменено: Lisaaaa - 31.05.2019 08:02:52
 
Так все работает.

макрос добавил в 1 й файл
 
дело в том, что я не могу добавить макрос в файл потому что файлы каждый раз будут меняться. Потому мне нужен отдельный файл с макросом который можно запускать и он будет обрабатывать файлы "подкинутые" ему в папку
 
Перенес макрос в третий файл, при условии что все 3 открыты, макрос работает без ошибок
 
все три файла лежат в одной папке, открыты все 3 файла, но все равно та же ошибка. что я делаю не так?((
 
Вот мои 3 файла. Макрос в 3-м, для запуска жмакнуть шестигранник
 
Сверху мое, снизу Ваше. Различий не нашла вообще, но Ваш работает, а мой нет...
Страницы: 1
Наверх