Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нету результата объединения файлов - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нету результата объединения файлов (Макросы/Sub)
Нету результата объединения файлов
fairylive Дата: Вторник, 31.05.2016, 16:14 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 3 ±
Замечаний: 0% ±

Excel 2016
Помогите разобраться с кодом. Вроде всё верно делаю, но нет результата. Ошибок не вылазиит. Код отрабатывает и ничего не появляется.
Имеется шаблон таблицы которую я пытаюсь заполнить данными из других файлов. В других файлах абсолютно такая же таблица. Но в одном столбце разные данные. Они или есть или их нет. В разных файлах данные разные. Надо всё свести в одну таблицу-шаблон в которой и находится макрос. Знаю что тема постоянно всплывает с объединением файлов. Но хотелось написать свой код чтобы в нём разбираться.

[vba]
Код
Sub MergeAllWorkbooks()
With Application: .DisplayAlerts = False: .ScreenUpdating = False: End With
    Dim FolderPath As String
    Dim FileName As String
    Dim WorkBk As Workbook
    Dim SourceRange()
    Dim DestRange()
    Dim twb As Workbook
    
    
    FolderPath = "\\здесь путь к файлам"
    
    ' Call Dir the first time, pointing it to all Excel files in the folder path.
    FileName = Dir(FolderPath & "*.xlsx")
    
    Set twb = ThisWorkbook
    DestRange = twb.Worksheets(1).Range("F6:F57").Value
    
    ' Loop until Dir returns an empty string.
    Do While FileName <> ""
        ' Open a workbook in the folder
        Set WorkBk = Workbooks.Open(FolderPath & FileName)
      
        SourceRange = WorkBk.Worksheets(1).Range("F6:F57").Value
                
        For i = 1 To UBound(SourceRange)
            DestRange(i, 1) = DestRange(i, 1) + SourceRange(i, 1)
        Next
        ' Close the source workbook without saving changes.
        WorkBk.Close savechanges:=False
        
        ' Use Dir to get the next file name.
        FileName = Dir()
    Loop
    
    With Application: .DisplayAlerts = True: .ScreenUpdating = True: End With
End Sub
[/vba]
К сообщению приложен файл: ___.xlsm(21Kb)


Сообщение отредактировал fairylive - Вторник, 31.05.2016, 16:15
 
Ответить
СообщениеПомогите разобраться с кодом. Вроде всё верно делаю, но нет результата. Ошибок не вылазиит. Код отрабатывает и ничего не появляется.
Имеется шаблон таблицы которую я пытаюсь заполнить данными из других файлов. В других файлах абсолютно такая же таблица. Но в одном столбце разные данные. Они или есть или их нет. В разных файлах данные разные. Надо всё свести в одну таблицу-шаблон в которой и находится макрос. Знаю что тема постоянно всплывает с объединением файлов. Но хотелось написать свой код чтобы в нём разбираться.

[vba]
Код
Sub MergeAllWorkbooks()
With Application: .DisplayAlerts = False: .ScreenUpdating = False: End With
    Dim FolderPath As String
    Dim FileName As String
    Dim WorkBk As Workbook
    Dim SourceRange()
    Dim DestRange()
    Dim twb As Workbook
    
    
    FolderPath = "\\здесь путь к файлам"
    
    ' Call Dir the first time, pointing it to all Excel files in the folder path.
    FileName = Dir(FolderPath & "*.xlsx")
    
    Set twb = ThisWorkbook
    DestRange = twb.Worksheets(1).Range("F6:F57").Value
    
    ' Loop until Dir returns an empty string.
    Do While FileName <> ""
        ' Open a workbook in the folder
        Set WorkBk = Workbooks.Open(FolderPath & FileName)
      
        SourceRange = WorkBk.Worksheets(1).Range("F6:F57").Value
                
        For i = 1 To UBound(SourceRange)
            DestRange(i, 1) = DestRange(i, 1) + SourceRange(i, 1)
        Next
        ' Close the source workbook without saving changes.
        WorkBk.Close savechanges:=False
        
        ' Use Dir to get the next file name.
        FileName = Dir()
    Loop
    
    With Application: .DisplayAlerts = True: .ScreenUpdating = True: End With
End Sub
[/vba]

Автор - fairylive
Дата добавления - 31.05.2016 в 16:14
_Boroda_ Дата: Вторник, 31.05.2016, 16:26 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9818
Репутация: 4146 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
В массив DestRange Вы данные загнали, а что дальше из массива на лист не выгружаете?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВ массив DestRange Вы данные загнали, а что дальше из массива на лист не выгружаете?

Автор - _Boroda_
Дата добавления - 31.05.2016 в 16:26
fairylive Дата: Вторник, 31.05.2016, 16:33 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 3 ±
Замечаний: 0% ±

Excel 2016
Как говорится забыл, да ещё и не знал))) Добавил после loop
[vba]
Код
twb.Worksheets(1).Range("F6:F57").Value = DestRange
[/vba]
Вроде работает. Спасибо!
[moder]Излишнее цитирование запрещено Правилами. Удалил[/moder]


Сообщение отредактировал _Boroda_ - Вторник, 31.05.2016, 16:36
 
Ответить
СообщениеКак говорится забыл, да ещё и не знал))) Добавил после loop
[vba]
Код
twb.Worksheets(1).Range("F6:F57").Value = DestRange
[/vba]
Вроде работает. Спасибо!
[moder]Излишнее цитирование запрещено Правилами. Удалил[/moder]

Автор - fairylive
Дата добавления - 31.05.2016 в 16:33
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Нету результата объединения файлов (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!