powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Собрать листы из нескольких книг Excel в одну
25 сообщений из 25, страница 1 из 1
Собрать листы из нескольких книг Excel в одну
    #36093864
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста, очень нужно сделать макрос в Эксель для следующей задачи (файлы я прикрепила):
Необходимо собрать однотипные листы, которые называются Свод_кв,из 2 файлов (на самом деле их ок.60) в один файл СводБДРпл-фт. Причем нужно, чтобы лист СВОД_кв, например, из книги Архангельск попал в файл СводБДР пл-фт в соответстующий лист Архангельск и т.д.
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36093934
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите!!!пожалуйста, я отчаялась уже :(
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36094346
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просматривается только вариант через самописный макрос (возможно можно еще как-то, но макрос - первое, что на ум приходит). если с VBA не знакома, то проще и быстрее вручную все сделать
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36094561
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1
РУЧКАМИ


Ну, или
Код: plaintext
1.
2.
3.
4.
For Each f in fol.files
'f - файл
'fol - папка с этими файлами
'открываем каждый файл, копируем лист Свод_кв, вставляем в ThisWorkbook, закрываем
Next f
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36094835
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Руками - очень долго. Файлов почти 60.
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36094907
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже бы сделала давно!
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095284
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо ещё? ща сделаю..
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095373
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095399
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот...
на скорую руку, правда, но работать должен

В переменную
Код: plaintext
Const sPath = "C:\Documents and Settings\_тест"
необходимо занести путь к папке, в которой хранятся файлы (без вложенных папок внутри, прога в них проникать не умеет).
Сам итоговый лист хранить в общей папке нельзя, поместите его на рабочий стол, например.
Пример в приложении, код ниже.

Код: 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.
Option Explicit
Dim fso As FileSystemObject

Const sPath = "C:\Documents and Settings\kutenko\Рабочий стол\Работа\_тест" '"G:\DEPTS\ANALITIK\Bankbase\_01122008bankbase" '"C:\_01102008bankbase"'"C:\_01102008bankbase" '"G:\DEPTS\ANALITIK\Bankbase\_01102008bankbase" '"C:\_01102008bankbase"

Dim book As Workbook
Dim sh As Worksheet
Public Sub CommandButton1_Click()

Dim fol As Folder
Dim f As File
Dim sTemp As String
Dim nTemp As Long
Dim b As Workbook
Dim she As Long

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Set fso = New FileSystemObject
Set fol = fso.GetFolder(sPath)
' Ходим по всем файлам в папке
    she =  1 
    For Each f In fol.Files
        ' Проверяем, что-бы длина имени файла была больше 3 символов
        If Len(f.Name) >  3  Then
            sTemp = LCase(Right(f.Name,  3 ))
                If sTemp = "xls" Then
                    Set b = Application.Workbooks.Open(f.Path)
                        b.Sheets("Свод_кв").Copy After:=Workbooks("СводБДР пл-фт.xls").Sheets(she)
                    she = ThisWorkbook.Sheets.Count
                    ThisWorkbook.Sheets(she).Name = f.Name
                    
                End If
        End If ' If Len(f.Name) > 3 Then
        Application.Workbooks(f.Name).Close False
    Next f

Set fol = Nothing
Set f = Nothing
Set fso = Nothing
Set sh = Nothing
Set b = Nothing

Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "готово :)"
End Sub
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095409
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) Ron de Bruin. Надстройка, которая позволяет сделать именно то, что вы хотите Интересно, но на практике не так часто требуется.
Лично мне - ниразу :)
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095767
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanB, здесь, как мне кажется, ключевая фраза - "лично мне". По моим наблюдениям, объединение нескольких книг в одну - один из самых частых вопросов на форумах по VBA в Excel на всех языках :-) Мне лично это тоже ниразу не пригодилось :-) Вероятно все зависит от того, чем занимаешься и какому рабочему процессу следуешь в работе с данными.
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095835
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)PlanB, здесь, как мне кажется, ключевая фраза - "лично мне".Так и есть :)
А наиболее часто (мне, опять же) требуется, пожалуй, формирование уникального списка элементов...
По крайней мере, напрягает больше остального
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095896
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,большое спасибо за помощь. Мне эти все операции приходится каждый день делать руками.
Я попробовала макрос, выдаёт ошибку Subscript out of range. Что это значит? Я в этом полный профан :(
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36095995
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL),

Спасибо, но у меня не загружается. Злобные админы постарались.
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096018
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanBВот...
на скорую руку, правда, но работать должен

В переменную
Код: plaintext
Const sPath = "C:\Documents and Settings\_тест"
необходимо занести путь к папке, в которой хранятся файлы (без вложенных папок внутри, прога в них проникать не умеет).
Сам итоговый лист хранить в общей папке нельзя, поместите его на рабочий стол, например.
1.Всё так сделали?
2.Путь точно поменяли?
3.На какой строчке останавливается при работе?
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096021
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknestKL (XL),

Спасибо, но у меня не загружается. Злобные админы постарались.
Выбирайте любой:
zendlife.info
zend2.com
hidemyass.com
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096028
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,
путь поменяла так: Const sPath = "C:\Documents and Settings\TEMP\Desktop\Май". В папке май только файлы, других папок нет.
Останавливается на строке
b.Sheets("Свод_кв").Copy After:=Workbooks("_Свод БДР МПП_05.2009г.xls").Sheets(she)
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096073
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknestPlanB,
путь поменяла так: Const sPath = "C:\Documents and Settings\TEMP\Desktop\Май". В папке май только файлы, других папок нет.
Останавливается на строке
b.Sheets("Свод_кв").Copy After:=Workbooks("_Свод БДР МПП_05.2009г.xls").Sheets(she)
Код: plaintext
b.Sheets("Свод_кв").Copy After:=Workbooks("_Свод БДР МПП_05.2009г.xls").Sheets(she)
поменяйте на
Код: plaintext
b.Sheets("Свод_кв").Copy After:=Workbooks(thisworkbook.name).Sheets(she)
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096082
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknest,
natniknestЯ в этом полный профан :(А зачем тогда файл переименовывали и вносили изменения в код программы???????
Код: plaintext
1.
b.Sheets("Свод_кв").Copy After:=Workbooks("СводБДР пл-фт.xls").Sheets(she) 'моя строчка
b.Sheets("Свод_кв").Copy After:=Workbooks("_Свод БДР МПП_05.2009г.xls").Sheets(she) 'ваша 
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096094
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

Почему-то макрос сделал только архангельск,
Выдаёт ошибку Can't execute code in break mod.

Теперь ему не нравится строка:

ThisWorkbook.Sheets(she).Name = f.Name
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096098
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

У меня свой сводный файл есть, вот в него и надо собрать.
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096114
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknestPlanB,

Почему-то макрос сделал только архангельск,
Выдаёт ошибку Can't execute code in break mod.у меня это было при тестах, когда я поместил в общую папку и управляющий файл... делайте выводы...
natniknestТеперь ему не нравится строка:

ThisWorkbook.Sheets(she).Name = f.Nameзаново запустите, предварительно грохнув все листы, сохраня с изменениями предыдущего моего поста.natniknestPlanB,

У меня свой сводный файл есть, вот в него и надо собрать.вы пытаетесь при незнании языка что-то сделать самостоятельно? тогда вам сюда , точно будет быстрее Я помог, как умел...
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36096123
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknestPlanB,

У меня свой сводный файл есть, вот в него и надо собрать.Соберите всё в этот, наконец, а потом разом переместите все листы в свой файл. Если хотите в др. файл забить код, то OLE Automation и MS Scripting Runtime надо включить в Tools-References.. на листе редактора VBA, иначе Excel не сможет объявить переменную
Код: plaintext
Dim fso As FileSystemObject
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36118434
natniknest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,
Огромное спасибо за помощь всё работает. Извините, долго не отвечала, инет не работал.

Только есть одна проблема: если у меня 18 файлов - всё замечательно, но вот если файлов больше - выдаёт ошибку Run-time error '1004' слишком многн форматов ячеек. Подскажите, пожалуйста, как быть?
...
Рейтинг: 0 / 0
Собрать листы из нескольких книг Excel в одну
    #36118531
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natniknestPlanB,
Огромное спасибо за помощь всё работает. Извините, долго не отвечала, инет не работал.

Только есть одна проблема: если у меня 18 файлов - всё замечательно, но вот если файлов больше - выдаёт ошибку Run-time error '1004' слишком многн форматов ячеек. Подскажите, пожалуйста, как быть?понятия не имею :)
а если сначала сделать 18, потом сохранить, грохнуть старые 18 файлов и положить новые работает?
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Собрать листы из нескольких книг Excel в одну
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]