powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сводный документ
13 сообщений из 13, страница 1 из 1
сводный документ
    #36456594
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, подскажите есть ли возможность с помощью макроса сделать следующее:
в папке создаем новый exel документ, кроме него в этой папке находятся exel файлы с данными, в каждом их них по одной страничке., если ли возможность открыть автоматически все эти файлы и скопировать их листы в один общий сводный документ?
заранее благодарен.
...
Рейтинг: 0 / 0
сводный документ
    #36456665
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87,
Да, сделать такое можно.
1. Создаете сводный файл
2. В этом файле в цикле открываете остальные файлы
3. Копируете листы.
...
Рейтинг: 0 / 0
сводный документ
    #36456679
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, я алгоритм понимаю, однко,
как можно в цикле открыть все файлы exel кроме текущего?
...
Рейтинг: 0 / 0
сводный документ
    #36456743
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87спасибо, я алгоритм понимаю, однко,
как можно в цикле открыть все файлы exel кроме текущего?

А что вы не понимаете?
Как открыть файл?
Как получить список файлов?
Как узнать имя текущего?
...
Рейтинг: 0 / 0
сводный документ
    #36456766
Nomad87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не понимаю как получить список файлов в папке и как их по очереди, по списку открыть.
поясните пожалуйста на простом примере -
есть три файла (1.xls, 2.xls, 3.xls), название листов внутри их соответственно имени файла и файл "итоговый", как открыть все три файла, скопировать из каждого по страниче и вставить их в итоговый файл
...
Рейтинг: 0 / 0
сводный документ
    #36456780
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nomad87я не понимаю как получить список файлов в папке

Команда Dir

Nomad87 и как их по очереди, по списку открыть.

Устроить цикл по результату

Nomad87поясните пожалуйста на простом примере -
есть три файла (1.xls, 2.xls, 3.xls), название листов внутри их соответственно имени файла и файл "итоговый", как открыть все три файла, скопировать из каждого по страниче и вставить их в итоговый файл

Из книги Excel добавить лист из другой книги Excel
Тема еще даже не ушла с первой страницы
...
Рейтинг: 0 / 0
сводный документ
    #36456787
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть пример как скопировать определённые значения из всех xls файлов определённой папки в файл, который не находится в этой папке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub summdata()
Dim FSO
Dim TheFolder, TheFiles, AFile
Application.ScreenUpdating = False
Set wb = ThisWorkbook
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TheFolder = FSO.GetFolder("C:\temp\svod\") 'Каталог, откуда суммировать
Set TheFiles = TheFolder.Files
For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then
Set xls = Workbooks.Open(Filename:=AFile, ReadOnly:=True)
wb.Sheets( 1 ).[aj2] = wb.Sheets( 1 ).[aj2].Value + xls.Sheets( 1 ).[aj2].Value
'сюда добавить аналогичные строки по другим ячейкам
xls.Close False
End If
Next
Application.ScreenUpdating = True
End Sub
Несложно переработать под задачу, если итоговый файл ещё не сохранён в папку с исходными файлами.
...
Рейтинг: 0 / 0
сводный документ
    #36456825
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант копирования листов (первого листа из каждого файла):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub summdata()
Dim FSO
Dim TheFolder, TheFiles, AFile
Application.ScreenUpdating = False
Set wb = ThisWorkbook
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TheFolder = FSO.GetFolder("C:\temp\svod\") 'Каталог, откуда суммировать
Set TheFiles = TheFolder.Files
For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then
Set xls = Workbooks.Open(Filename:=AFile, ReadOnly:=True)
xls.Sheets( 1 ).Copy After:=wb.Sheets(wb.Sheets.Count)
xls.Close False
End If
Next
Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
сводный документ
    #36456863
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и вот вариант, который создаёт новый файл и предлагает его сохранить как результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub summdata()
Dim FSO As Object
Dim TheFolder As Object, TheFiles As Object, AFile As Object
Application.ScreenUpdating = False
Set wb = Workbooks.Add(template:=xlWorksheet)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TheFolder = FSO.GetFolder("C:\temp\svod\") 'Каталог, откуда суммировать
Set TheFiles = TheFolder.Files

For Each AFile In TheFiles
If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then
Set xls = Workbooks.Open(Filename:=AFile, ReadOnly:=True)
xls.Sheets( 1 ).Copy After:=wb.Sheets(wb.Sheets.Count)
xls.Close False
End If
Next

arFiles = Application.GetSaveAsFilename("Результат", "Excel Files (*.xls), *.xls", , "Сохранить объединенную книгу")
wb.SaveAs arFiles

Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
сводный документ
    #36457304
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Hugo121

Нет, это конечно все класно, но мне кажется простая запись макроса на каждое из действий вполне сможет прояснить большую
часть вопросов

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сводный документ
    #36457401
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не понимаю как получить список файлов в папке и как их по очереди, по списку открыть -
вот это записью макроса имхо не получить. Остальное можно, сам только что так делал :)
...
Рейтинг: 0 / 0
сводный документ
    #36457810
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Hugo121
> не понимаю как получить список файлов в папке и как их по очереди, по списку открыть -
> вот это записью макроса имхо не получить. Остальное можно, сам только что так делал :)

Не получить, согласен, но можно просто
почитать :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сводный документ
    #36457906
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там много написано, можно короче:
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub tt()
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each AFile In FSO.GetFolder("C:\temp\svod\").Files
'work
Next
End Sub
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / сводный документ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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