День добрый.... У меня проблема.. очень нужно копировать строку из одного файла в другой... наталкиваюсь в сети на примеры макросов, но для меня это как китайская грамота((((... в общем в папке есть несколько файлов (10, 40, 100... когда как и с разными именами каждый день, хотя если очень сложно, то можно делать одинаковые имена каждый день).... и из каждого файла нужно чтобы определенная строка (в каждом файле это одна и та же строка, с тем-же адресом), правда она создана со ссылками из другой таблицы... так что даже если просто вручную копировать, то нужно использовать специальную вставку, чтобы скопировались только значения, без привязки формул.. соответственно нужно чтобы каждая строка вставлялась в новую строку... в общем можно сказать что нужно сделать сводную таблицу из значений, которые находятся в разных файлах, количество которых изменяется...
не знаю, понятно-ли описал... могу уточнить детали, если кто, вдруг, отозвется.... очень надеюсь на помощь и заранее спасибо)))
День добрый.... У меня проблема.. очень нужно копировать строку из одного файла в другой... наталкиваюсь в сети на примеры макросов, но для меня это как китайская грамота((((... в общем в папке есть несколько файлов (10, 40, 100... когда как и с разными именами каждый день, хотя если очень сложно, то можно делать одинаковые имена каждый день).... и из каждого файла нужно чтобы определенная строка (в каждом файле это одна и та же строка, с тем-же адресом), правда она создана со ссылками из другой таблицы... так что даже если просто вручную копировать, то нужно использовать специальную вставку, чтобы скопировались только значения, без привязки формул.. соответственно нужно чтобы каждая строка вставлялась в новую строку... в общем можно сказать что нужно сделать сводную таблицу из значений, которые находятся в разных файлах, количество которых изменяется...
не знаю, понятно-ли описал... могу уточнить детали, если кто, вдруг, отозвется.... очень надеюсь на помощь и заранее спасибо)))mefisto
Option Explicit Sub Getfiles() Application.ScreenUpdating = False Dim distance As String Dim fName As String distance = "e:\1\reports\" fName = Dir(distance & "*.*") Do While fName <> "" Workbooks.Open distance & fName data fName Workbooks(fName).Close True fName = Dir Loop Application.ScreenUpdating = True End Sub Sub data(file_ As String) Dim lastcell As Integer lastcell = Workbooks("f.xls").Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1 Workbooks("f.xls").Sheets(1).Cells(lastcell, 1).Value = _ Workbooks(file_).Sheets(1).Cells(1, 1).Value End Sub
[/vba]
Наверное как-то так: [vba]
Код
Option Explicit Sub Getfiles() Application.ScreenUpdating = False Dim distance As String Dim fName As String distance = "e:\1\reports\" fName = Dir(distance & "*.*") Do While fName <> "" Workbooks.Open distance & fName data fName Workbooks(fName).Close True fName = Dir Loop Application.ScreenUpdating = True End Sub Sub data(file_ As String) Dim lastcell As Integer lastcell = Workbooks("f.xls").Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1 Workbooks("f.xls").Sheets(1).Cells(lastcell, 1).Value = _ Workbooks(file_).Sheets(1).Cells(1, 1).Value End Sub
Очень большое спасибо что откликнулись... но у меня что-то не получается... вытащил из архива.... я так понимаю файл f это сборочный файл..... начал запускать выдает что макрос заблокирован... нашел где включить макрос, включил... при нажатии "получить данные" ничего не происходит... пробовал размещать файл f как в папке с файлами и так как и у Вас в примере.. я в отчаянии.. я что-то не правильно сделал????(((((((((
Очень большое спасибо что откликнулись... но у меня что-то не получается... вытащил из архива.... я так понимаю файл f это сборочный файл..... начал запускать выдает что макрос заблокирован... нашел где включить макрос, включил... при нажатии "получить данные" ничего не происходит... пробовал размещать файл f как в папке с файлами и так как и у Вас в примере.. я в отчаянии.. я что-то не правильно сделал????(((((((((mefisto
Обрабатываемые файлы должны находиться по адресу: distance = "e:\1\reports\"(Можете вписать другой) Вышеуказанный макрос из обрабатываемых файлов вытаскивает значение ячейки a1. Мы же не экстрасенсы, чтобы догадаться, что конкретно из файлов нужно получать. Ознакомьтесь пожалуйста с правилами форума!
Обрабатываемые файлы должны находиться по адресу: distance = "e:\1\reports\"(Можете вписать другой) Вышеуказанный макрос из обрабатываемых файлов вытаскивает значение ячейки a1. Мы же не экстрасенсы, чтобы догадаться, что конкретно из файлов нужно получать. Ознакомьтесь пожалуйста с правилами форума!Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
Сообщение отредактировал Jhonson - Суббота, 23.03.2013, 11:07
еще раз спасибо!!! извините что такой темный в этих делах и задаю, наверное, глупые вопросы... нужно почитать не так правила форума, как принципы работы макросов.. но к сожалению к этому мозги не заточены(((...
У меня получилось сделать по Вашему примеру, но если я создаю еще один файл с именем "3", то выдает какую-то ошибку и берет значение с третьего файла, но выводит его в отдельный (новый файл).... (((.. и еще, копируется ячейка, а нужна строка из каждого файла..
еще раз прошу прощение за то что, возможно, Вам со мной общаться как глухому с немым, но тяжело все это(
и спасибо!!!
еще раз спасибо!!! извините что такой темный в этих делах и задаю, наверное, глупые вопросы... нужно почитать не так правила форума, как принципы работы макросов.. но к сожалению к этому мозги не заточены(((...
У меня получилось сделать по Вашему примеру, но если я создаю еще один файл с именем "3", то выдает какую-то ошибку и берет значение с третьего файла, но выводит его в отдельный (новый файл).... (((.. и еще, копируется ячейка, а нужна строка из каждого файла..
еще раз прошу прощение за то что, возможно, Вам со мной общаться как глухому с немым, но тяжело все это(
Мой вариант: 1. файлов - сколько угодно, 2. имена файлов - какие угодно, 3. формируется автоматически файл-свод.
Поскольку Вы не показали структуру своих файлов, в моем варианте - выбирается 2 строка в каждом файле и в режиме "Специальная Вставка (Значения) копируется в файл-свод.
Мой вариант: 1. файлов - сколько угодно, 2. имена файлов - какие угодно, 3. формируется автоматически файл-свод.
Поскольку Вы не показали структуру своих файлов, в моем варианте - выбирается 2 строка в каждом файле и в режиме "Специальная Вставка (Значения) копируется в файл-свод.Матрёна
Размещать файл с макросом можно - ГДЕ УГОДНО. Однако, наличие каталога "БАЗА ДЛЯ СВОДА" ОБЯЗАТЕЛЬНО В КАТАЛОГЕ, в КОТОРОМ РАЗМЕЩЕН ФАЙЛ С МАКРОСОМ!
Размещать файл с макросом можно - ГДЕ УГОДНО. Однако, наличие каталога "БАЗА ДЛЯ СВОДА" ОБЯЗАТЕЛЬНО В КАТАЛОГЕ, в КОТОРОМ РАЗМЕЩЕН ФАЙЛ С МАКРОСОМ!Матрёна