|
|
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
Есть такая проблема: 4 подразделения заполняют лист в книге назовем его "Заявка" форма для всех одинаковая и сдают помесячно. Получается что есть 4 папки по 12 файлов. Также существует итоговая книга (один лист лишь с заголовком из одной строки) Как создать макрос чтобы данные из выбранных книг только с листа "Заявка" копировались в мастер-книгу на лист "Заявка" друг за другом без шапки... Форум листаю уже несколько дней, но ни один пример полностью не подходит, обычно получалось, что при вставке из другой книги предыдущие данные в итоговой затирались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 02:40 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
Или здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 09:49 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
А еще здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 09:50 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
Пока ждал ответа написал сам! ))) на днях выложу код. Возник только один вопрос к вам знатоки - а позволяет ли Эксель (VBA)просканировать определенную папку, составить список имеющихся файлов и потом поименно их открывать? А то просто накладно руками вбивать 48 имен файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 10:45 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
Возникла еще проблема - количество строк в сумме превышает 80000 и происходит overflow, следовательно надо файл xlsx, но даже при сохранении результата в него происходит тоже самое. Файл с макросом сохранен в формате xlsm. может кто сталкивался с такой проблемой и знает ее решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 11:07 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
а воспользоваться поиском - задача безгранично сложная? или топикстартер уверен, что перед ним единственным обстоятельства ставят какие-то сверхсложные задачи? на второй вопрос: кофейная гуща и мой хрустальный шар подсказывают, что надо бы использовать другие типы переменных. а для начала - просто приписать до процедуры Option Explicit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 11:15 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
на 1 вопрос ответ "да, позволяет" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 11:15 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodpВозникла еще проблема - количество строк в сумме превышает 80000 и происходит overflow, следовательно надо файл xlsx, но даже при сохранении результата в него происходит тоже самое. Файл с макросом сохранен в формате xlsm. может кто сталкивался с такой проблемой и знает ее решение?Надо закрыть все файлы с расширением xls. Если Вы копируете данные из файлов в режиме совместимости, то накладываются все ограничения старой версии Excel, к которой несомненно относится кол-во строк не более 65536. Если бы Вы внимательно прочитали все возможности команды надстройки, ссылку на которую я дал в первом посте, то нашли бы и описание этой каверзной пакости. Советую посетить указанную ссылку и может вопросы отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 11:24 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
ксати, почему бы не копировать данные запросом? цикл на файлы в папке, и последовательно организовывать подключение к каждому. sql = "SELECT * FROM " & fNmae или с JOIN промутить, если число файлов постоянное. тогда вообще VBA использовать не надо. по сути, задача сводится к предзапускному указанию директории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 11:35 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
В процессе работы было выяснено что не все папки имеют одинаковое количество фалов, в некоторых их меньше. Option Explicit использую изначально. Все месячные файлы формата xls Вот сам код, используемый мной. Знакомство с VBA мое состоялось лишь пару дней назад, до этого был лишь фортран 15 лет назад. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 13:11 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodp, ошибка возникает потому что NewLine As Integer, надо As Long ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 13:44 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
по совету Shamanus заменил NewLine As Integer на As Long. Когда доходит опять до размера примерно 65000 строк вылезает ошибка Run-time error '1004': Application-defined or object-defined error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 14:15 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodpКогда доходит опять до размера примерно 65000 строк вылезает ошибка Run-time error '1004': Application-defined or object-defined errorУ Вас в момент работы макроса и копирования данных открыты какие-либо файлы 2003 Excel? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 14:18 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
открыты! у меня открывается файл, из него копируются данные, он закрывается, открывается следующий и так далее. я просто не знаю как по другому организовать код, подскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 14:25 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodp, попробуйте так. Сильно код не стал менять, чтоб не вводить Вас в заблуждение. Код должен работать, если файл 2003 Excel лишь тот, из которого копируем и другие файлы 2003 не открыты. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 14:38 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
The_Prist огромное вам спасибо, помогло. Я как понял просто считываете данные в массив, а потом только записываете в файл? осталось теперь только найти как перебором открывать все файлы в папке, чтобы не забивать названия в ручную... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:04 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodpосталось теперь только найти как перебором открывать все файлы в папке, чтобы не забивать названия в ручную...Вот Вам пример выбора папки(можно выбор папки заменить на адрес папки с файлами) и перебор всех файлов указанного формата в ней: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:12 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
Здесь он открывает все файлы сразу(если я правильно понял), что не получится в моем случае( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:21 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodpЗдесь он открывает все файлы сразу(если я правильно понял), что не получится в моем случае(А это не Вы писали? yurechkodpнайти как перебором открывать все файлы в папке Тогда потрудитесь пояснить, что Вам надо. Вы написали вопрос - я ответил. Оказывается - не то. Где правда? Вы код-то пробовали? Или надо в Ваш код все это вставить, чтобы Вы поняли принцип? Запустите код и посмотрите на действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:24 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
The_Prist, вот вам код сбацал, вытягивает все файлы расширением .xls и .xlsx любой степени вложденности в указанной директории. дальше у вас наработки есть, по всей видимости. хотя я в любом случае склоняюсь к sql-запросу. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:28 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
2The_Prist я имею ввиду что у меня нельзя открывать все файлы сразу, ведь по вашим же словам надо чтобы только один файл был открыт. То есть чтобы один открылся, скопировал с него, закрылся. видать я что-то не понимаю в вашем коде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:32 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodpЗдесь он открывает все файлы сразу(если я правильно понял), что не получится в моем случае(почему все сразу? написано же Код: plaintext 1. 2. The_Prist, у вас висит Application.ScreenUpdating = False, ничерта там топикстартер и не увидит =)) The_Prist, предыдущий мо пост адресован yurechkodp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:32 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
yurechkodp 2The_Prist я имею ввиду что у меня нельзя открывать все файлы сразу, ведь по вашим же словам надо чтобы только один файл был открыт. То есть чтобы один открылся, скопировал с него, закрылся. видать я что-то не понимаю в вашем кодетак и происходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:33 |
|
||
|
Помогите с объединением файлов
|
|||
|---|---|---|---|
|
#18+
PlanBWith New Scripting.FileSystemObjectPlanB забыл указать, что при этом коде необходимо указать ссылку в библиотеках(Tools-Referenses) на Microsoft Scripting Runtime. Ну и надеюсь обращение ко мнеPlanBThe_Prist, вот вам код сбацал было ошибочным из-за особенностей форума... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2010, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36844785&tid=2177662]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
180ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 447ms |

| 0 / 0 |
