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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 22:53   #1
lemann
 
Регистрация: 13.10.2011
Сообщений: 3
Радость Нужен макрос для сбора столбцов из разных файлов в одной таблице

Нужен макрос для сбора в одной таблице одинаково расположенных столбцов в разных CSV файлах. Макрос, решающий похожую проблему приведен здесь. Помогите, пожалуйста, написать макрос, который собирает данные из разных файлов с расширением .csv находящихся в одной папке. Необходимо, чтобы данные из столбца G9:G37 из каждого файла ("Откуда1.csv", "Откуда2.csv") копировались в открытую книгу (пример "Куда.xls"), вставляя данные столбцов друг за другом. Заголовок для столбца - имя файла. Пример во вложении.
Вложения
Тип файла: rar Пример.rar (6.6 Кб, 39 просмотров)
lemann вне форума Ответить с цитированием
Старый 16.10.2011, 23:18   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

http://excelvba.ru/code/DATfolder2Array
http://excelvba.ru/code/DownloadCSV (см. второй прикреплённый файл)
EducatedFool вне форума Ответить с цитированием
Старый 16.10.2011, 23:25   #3
lemann
 
Регистрация: 13.10.2011
Сообщений: 3
По умолчанию

Большое спасибо, за ответ. Макросы классные, но я вряд ли смогу адаптировать их под свои нужды. Нельзя ли попроще?
lemann вне форума Ответить с цитированием
Старый 17.10.2011, 08:54   #4
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Файлы должны лежать в одной папке, код в модуле книги.

Код:
Sub io()
Dim v, j As Byte
Me.Parent.ScreenUpdating = False: j = 1
With CreateObject("Scripting.FileSystemObject")
    For Each v In .GetFolder(Me.Path & "\").Files
        If v.name Like "*.csv" Then
            With GetObject(v.Path).Sheets(1)
                j = j + 1: Me.Sheets(1).Cells(1, j).Value = v.name
                Me.Sheets(1).Cells(2, j).Resize(29).Value = .Range("G9:G37").Value
            End With
        End If
    Next
End With
End Sub
Вложения
Тип файла: zip Пример.zip (12.5 Кб, 60 просмотров)
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 17.10.2011, 09:11   #5
lemann
 
Регистрация: 13.10.2011
Сообщений: 3
По умолчанию

Спасибо. Но при запуске пишет
Код:
invalid use of me keyword
. Как исправить?
lemann вне форума Ответить с цитированием
Старый 17.10.2011, 11:56   #6
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Попробуйте везде удалить
Код:
Me.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 17.10.2011, 11:58   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

т.е.
Код:
Sub io()
Dim v, j As Byte
Parent.ScreenUpdating = False: j = 1
With CreateObject("Scripting.FileSystemObject")
    For Each v In .GetFolder(Path & "\").Files
        If v.name Like "*.csv" Then
            With GetObject(v.Path).Sheets(1)
                j = j + 1: Sheets(1).Cells(1, j).Value = v.name
                Sheets(1).Cells(2, j).Resize(29).Value = .Range("G9:G37").Value
            End With
        End If
    Next
End With
End Sub
Тишина – самый громкий звук

Последний раз редактировалось nerv; 17.10.2011 в 12:00.
nerv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен макрос или программа для пакетной обработки файлов srgg Microsoft Office Word 2 23.05.2012 13:05
Объединение данных из разных Файлов на разных листах одной книги Nikodim113 Microsoft Office Excel 20 12.01.2011 07:12
Нужен макрос сбора данных. kipish_lp Microsoft Office Excel 5 16.04.2010 07:22
как выравнить в одной таблице текст в разных ячейках Arassir HTML и CSS 2 18.01.2010 08:29
Помогите плиз правильно написать макрос обновления данных из разных файлов Legame Microsoft Office Excel 10 10.09.2009 10:39