Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных из массива книг в одну - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из массива книг в одну (Макросы/Sub)
Копирование данных из массива книг в одну
bankiroff Дата: Понедельник, 09.11.2015, 19:10 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте, уважаемые форумчане!

Имеется следующий код:

[vba]
Код

For i=0 To Ubound(arrFiles)
Debug.Print arrFiles(i).Name
arrFiles(i).Activate
ActiveWorkbook.SaveAs Filename:=iPath & iTemp
ActiveWorkbook.Close

Workbooks.Open Filename:=iPath & iTemp
Range("E3:E30").Activate
Selection.Copy
ActiveWorkbook.Close
Workbooks.Open Filename:=iPath & iNewCSV
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save

Workbooks.Open Filename:=iPath & iTemp
Range("R3:X30").Activate
Selection.Copy
ActiveWorkbook.Close
Workbooks.Open Filename:=iPath & iNewCSV
Range("AB2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save

Next i
[/vba]

Данный код реализует считывание нескольких екселевских книг в массив arrFiles, после чего, происходит копирование содержимого каждой прочитанной книги во временный файл iTemp. Трудность заключается в том, что я не понимаю, как реализовать возможность записи считанных данных из всех книг массива в один файл iNewCSV. После копирования данных во временный файл iTemp, происходит копирование уже из этого файла нужных мне столбцов E3:E30 и R3:X30 в файл iNewCSV. Естесственно, после каждого прохода и чтения очередной книги из массива, происходит постоянная перезапись записанных столбцов в iNewCSV, а мне необходимо, чтобы предыдущие данные не затирались, а просто дополнялись новыми (из новой книги массива), т.е. данные записывались уже не в E3:E30 и R3:X30, а в E31:E60 и R31:X60. Помогите кто-нибудь, пожалуйста, в качестве благодарности не ограничусь одним "спасибо")


Сообщение отредактировал bankiroff - Понедельник, 09.11.2015, 19:11
 
Ответить
СообщениеЗдравствуйте, уважаемые форумчане!

Имеется следующий код:

[vba]
Код

For i=0 To Ubound(arrFiles)
Debug.Print arrFiles(i).Name
arrFiles(i).Activate
ActiveWorkbook.SaveAs Filename:=iPath & iTemp
ActiveWorkbook.Close

Workbooks.Open Filename:=iPath & iTemp
Range("E3:E30").Activate
Selection.Copy
ActiveWorkbook.Close
Workbooks.Open Filename:=iPath & iNewCSV
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save

Workbooks.Open Filename:=iPath & iTemp
Range("R3:X30").Activate
Selection.Copy
ActiveWorkbook.Close
Workbooks.Open Filename:=iPath & iNewCSV
Range("AB2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save

Next i
[/vba]

Данный код реализует считывание нескольких екселевских книг в массив arrFiles, после чего, происходит копирование содержимого каждой прочитанной книги во временный файл iTemp. Трудность заключается в том, что я не понимаю, как реализовать возможность записи считанных данных из всех книг массива в один файл iNewCSV. После копирования данных во временный файл iTemp, происходит копирование уже из этого файла нужных мне столбцов E3:E30 и R3:X30 в файл iNewCSV. Естесственно, после каждого прохода и чтения очередной книги из массива, происходит постоянная перезапись записанных столбцов в iNewCSV, а мне необходимо, чтобы предыдущие данные не затирались, а просто дополнялись новыми (из новой книги массива), т.е. данные записывались уже не в E3:E30 и R3:X30, а в E31:E60 и R31:X60. Помогите кто-нибудь, пожалуйста, в качестве благодарности не ограничусь одним "спасибо")

Автор - bankiroff
Дата добавления - 09.11.2015 в 19:10
nilem Дата: Понедельник, 09.11.2015, 19:43 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
вот здесь:
[vba]
Код
Workbooks.Open Filename:=iPath & iNewCSV
Range("A2").Select
[/vba]

попробуйте вместо Range("A2").Select вот так:
[vba]
Код
Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениевот здесь:
[vba]
Код
Workbooks.Open Filename:=iPath & iNewCSV
Range("A2").Select
[/vba]

попробуйте вместо Range("A2").Select вот так:
[vba]
Код
Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
[/vba]

Автор - nilem
Дата добавления - 09.11.2015 в 19:43
_Boroda_ Дата: Понедельник, 09.11.2015, 19:43 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вы бы приложили весь код. У Вас там куча лишнего. Например, зачем Вы 2 раза открываете один и тот же файл для копирования из него разных диапазонов? Селекты, опять же, лишние.

По поводу нахождения первой непустой
[vba]
Код
        Workbooks.Open Filename:=iPath & iNewCSV
        r_ = Range("A" & Rows.Count).End(xlUp).Row + 1
        Range("A" & r_).Select
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВы бы приложили весь код. У Вас там куча лишнего. Например, зачем Вы 2 раза открываете один и тот же файл для копирования из него разных диапазонов? Селекты, опять же, лишние.

По поводу нахождения первой непустой
[vba]
Код
        Workbooks.Open Filename:=iPath & iNewCSV
        r_ = Range("A" & Rows.Count).End(xlUp).Row + 1
        Range("A" & r_).Select
[/vba]

Автор - _Boroda_
Дата добавления - 09.11.2015 в 19:43
bankiroff Дата: Вторник, 10.11.2015, 18:00 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ребята, большое спасибо за помощь! Особенно Вам, Boroda! Ваш совет мне очень помог! Я от своих слов не отказываюсь, напишите, пожалуйста, Ваш номер телефона :) можете написать в личку по адресу: s.e.n-91@mail.ru .
 
Ответить
СообщениеРебята, большое спасибо за помощь! Особенно Вам, Boroda! Ваш совет мне очень помог! Я от своих слов не отказываюсь, напишите, пожалуйста, Ваш номер телефона :) можете написать в личку по адресу: s.e.n-91@mail.ru .

Автор - bankiroff
Дата добавления - 10.11.2015 в 18:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из массива книг в одну (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!