Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Собрать листы из нескольких книг Excel в одну / 25 сообщений из 25, страница 1 из 1
16.07.2009, 16:05:46
    #36093864
natniknest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
Помогите, пожалуйста, очень нужно сделать макрос в Эксель для следующей задачи (файлы я прикрепила):
Необходимо собрать однотипные листы, которые называются Свод_кв,из 2 файлов (на самом деле их ок.60) в один файл СводБДРпл-фт. Причем нужно, чтобы лист СВОД_кв, например, из книги Архангельск попал в файл СводБДР пл-фт в соответстующий лист Архангельск и т.д.
...
Рейтинг: 0 / 0
16.07.2009, 16:31:46
    #36093934
natniknest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
Помогите!!!пожалуйста, я отчаялась уже :(
...
Рейтинг: 0 / 0
16.07.2009, 19:27:10
    #36094346
Korcar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
Просматривается только вариант через самописный макрос (возможно можно еще как-то, но макрос - первое, что на ум приходит). если с VBA не знакома, то проще и быстрее вручную все сделать
...
Рейтинг: 0 / 0
17.07.2009, 00:21:08
    #36094561
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
+1
РУЧКАМИ


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

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

В переменную
Код: 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
17.07.2009, 12:52:58
    #36095409
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
KL (XL) Ron de Bruin. Надстройка, которая позволяет сделать именно то, что вы хотите Интересно, но на практике не так часто требуется.
Лично мне - ниразу :)
...
Рейтинг: 0 / 0
17.07.2009, 14:38:28
    #36095767
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
PlanB, здесь, как мне кажется, ключевая фраза - "лично мне". По моим наблюдениям, объединение нескольких книг в одну - один из самых частых вопросов на форумах по VBA в Excel на всех языках :-) Мне лично это тоже ниразу не пригодилось :-) Вероятно все зависит от того, чем занимаешься и какому рабочему процессу следуешь в работе с данными.
...
Рейтинг: 0 / 0
17.07.2009, 15:01:24
    #36095835
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
KL (XL)PlanB, здесь, как мне кажется, ключевая фраза - "лично мне".Так и есть :)
А наиболее часто (мне, опять же) требуется, пожалуй, формирование уникального списка элементов...
По крайней мере, напрягает больше остального
...
Рейтинг: 0 / 0
17.07.2009, 15:21:41
    #36095896
natniknest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
PlanB,большое спасибо за помощь. Мне эти все операции приходится каждый день делать руками.
Я попробовала макрос, выдаёт ошибку Subscript out of range. Что это значит? Я в этом полный профан :(
...
Рейтинг: 0 / 0
17.07.2009, 15:52:16
    #36095995
natniknest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать листы из нескольких книг Excel в одну
KL (XL),

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

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

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

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

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

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

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

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

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

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

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

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

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


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