Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.02.2008, 11:44   #1
asale
Форумчанин
 
Регистрация: 09.01.2007
Сообщений: 108
По умолчанию Объединить в один файл

Добрый день.
В папке есть 20 файлов по 1 листу в каждом (одинаковые таблицы,только данные разные).
Возможно макросом объединить их все в одну книгу? Чтобы каждая таблица была на листе, т.е. чтобы в итоговом файле стало 20 листов?

Возможно ли это?
asale вне форума
Старый 12.02.2008, 12:47   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Конечно, возможно.
Есть несколько условий:
1. В папке должны находиться только необходимые для обработки файлы (или их необходимо будет выбирать по одному, вручную)
2. Файлы должны содержать по одному листу, или необходимые листы должны одинаково называться, или на этих листах должны быть такие данные, по которым их можно однозначно отличить от всех остальных в книге.

И последнее, если Вам необходимо по три раза каждый день, собирать листы с 20 книг в одну книгу - есть смысл дождаться макроса здесь, а если это разовая задача - проще все проделать ручками..., тем более, что у меня есть подозрения, что все это не обойдется без подготовительных работ, которые точно могут быть выполнены только ручками, для обеспечения выполнения условий 1 и 2
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 12.02.2008, 13:18   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Например, так:
Код:
Sub CombineWorkbooks()
    Dim CurFile As String
    Dim DestWB As Workbook
    Dim ws As Object 'Рабочие листы могут быть произвольного типа.
    
    Const DirLoc As String = "C:\Temp\" 'Местоположение исходных файлов.
    Application.ScreenUpdating = False
    Set DestWB = Workbooks.Add(xlWorksheet)
    CurFile = Dir(DirLoc & "*.xls")
    
    Do While CurFile <> vbNullString
        Dim OrigWB As Workbook
        Set OrigWB = Workbooks.Open(Filename:=DirLoc & CurFile, ReadOnly:=True)
        CurFile = Left(Left(CurFile, Len(CurFile) - 4), 29)
        
'Получение базового имени рабочего листа путем отсечения последних 4-х символов имени исходного файла (".xls").

        For Each ws In OrigWB.Sheets
            ws.Copy After:=DestWB.Sheets(DestWB.Sheets.Count)
            If OrigWB.Sheets.Count > 1 Then
                DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile & ws.Index
            Else
                DestWB.Sheets(DestWB.Sheets.Count).Name = CurFile
            End If
        Next
        OrigWB.Close SaveChanges:=False
        CurFile = Dir
    Loop
    
    Application.DisplayAlerts = False
    DestWB.Sheets(1).Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set DestWB = Nothing
    
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение нескольких излбражений в один файл.. как? IGWI Мультимедиа в Delphi 7 18.11.2008 23:16
два запроса, которые нужно объединить в один. andrianov123 БД в Delphi 4 16.05.2008 16:06
Как объединить несколько ячеек katlis Microsoft Office Excel 1 02.08.2007 23:31
Как объединить файлы? CMP Помощь студентам 6 07.05.2007 21:52