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

Вход

Регистрация

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

 

= Мир MS Excel/Функция (макрос) копирования строки из одного файла в другой - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция (макрос) копирования строки из одного файла в другой
Функция (макрос) копирования строки из одного файла в другой
mefisto Дата: Суббота, 23.03.2013, 09:58 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

День добрый.... У меня проблема.. очень нужно копировать строку из одного файла в другой... наталкиваюсь в сети на примеры макросов, но для меня это как китайская грамота((((... в общем в папке есть несколько файлов (10, 40, 100... когда как и с разными именами каждый день, хотя если очень сложно, то можно делать одинаковые имена каждый день).... и из каждого файла нужно чтобы определенная строка (в каждом файле это одна и та же строка, с тем-же адресом), правда она создана со ссылками из другой таблицы... так что даже если просто вручную копировать, то нужно использовать специальную вставку, чтобы скопировались только значения, без привязки формул.. соответственно нужно чтобы каждая строка вставлялась в новую строку... в общем можно сказать что нужно сделать сводную таблицу из значений, которые находятся в разных файлах, количество которых изменяется...

не знаю, понятно-ли описал... могу уточнить детали, если кто, вдруг, отозвется.... очень надеюсь на помощь и заранее спасибо)))
 
Ответить
СообщениеДень добрый.... У меня проблема.. очень нужно копировать строку из одного файла в другой... наталкиваюсь в сети на примеры макросов, но для меня это как китайская грамота((((... в общем в папке есть несколько файлов (10, 40, 100... когда как и с разными именами каждый день, хотя если очень сложно, то можно делать одинаковые имена каждый день).... и из каждого файла нужно чтобы определенная строка (в каждом файле это одна и та же строка, с тем-же адресом), правда она создана со ссылками из другой таблицы... так что даже если просто вручную копировать, то нужно использовать специальную вставку, чтобы скопировались только значения, без привязки формул.. соответственно нужно чтобы каждая строка вставлялась в новую строку... в общем можно сказать что нужно сделать сводную таблицу из значений, которые находятся в разных файлах, количество которых изменяется...

не знаю, понятно-ли описал... могу уточнить детали, если кто, вдруг, отозвется.... очень надеюсь на помощь и заранее спасибо)))

Автор - mefisto
Дата добавления - 23.03.2013 в 09:58
Jhonson Дата: Суббота, 23.03.2013, 10:30 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Наверное как-то так:
[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
[/vba]
К сообщению приложен файл: 8163537.rar (12.2 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Суббота, 23.03.2013, 10:31
 
Ответить
СообщениеНаверное как-то так:
[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
[/vba]

Автор - Jhonson
Дата добавления - 23.03.2013 в 10:30
mefisto Дата: Суббота, 23.03.2013, 10:55 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

Очень большое спасибо что откликнулись... но у меня что-то не получается... вытащил из архива.... я так понимаю файл f это сборочный файл..... начал запускать выдает что макрос заблокирован... нашел где включить макрос, включил... при нажатии "получить данные" ничего не происходит... пробовал размещать файл f как в папке с файлами и так как и у Вас в примере.. я в отчаянии.. я что-то не правильно сделал????(((((((((
 
Ответить
СообщениеОчень большое спасибо что откликнулись... но у меня что-то не получается... вытащил из архива.... я так понимаю файл f это сборочный файл..... начал запускать выдает что макрос заблокирован... нашел где включить макрос, включил... при нажатии "получить данные" ничего не происходит... пробовал размещать файл f как в папке с файлами и так как и у Вас в примере.. я в отчаянии.. я что-то не правильно сделал????(((((((((

Автор - mefisto
Дата добавления - 23.03.2013 в 10:55
Jhonson Дата: Суббота, 23.03.2013, 11:05 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Обрабатываемые файлы должны находиться по адресу:
distance = "e:\1\reports\"(Можете вписать другой)
Вышеуказанный макрос из обрабатываемых файлов вытаскивает значение ячейки a1. Мы же не экстрасенсы, чтобы догадаться, что конкретно из файлов нужно получать. Ознакомьтесь пожалуйста с правилами форума!


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Суббота, 23.03.2013, 11:07
 
Ответить
СообщениеОбрабатываемые файлы должны находиться по адресу:
distance = "e:\1\reports\"(Можете вписать другой)
Вышеуказанный макрос из обрабатываемых файлов вытаскивает значение ячейки a1. Мы же не экстрасенсы, чтобы догадаться, что конкретно из файлов нужно получать. Ознакомьтесь пожалуйста с правилами форума!

Автор - Jhonson
Дата добавления - 23.03.2013 в 11:05
mefisto Дата: Суббота, 23.03.2013, 11:19 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

еще раз спасибо!!! извините что такой темный в этих делах и задаю, наверное, глупые вопросы... нужно почитать не так правила форума, как принципы работы макросов.. но к сожалению к этому мозги не заточены(((...

У меня получилось сделать по Вашему примеру, но если я создаю еще один файл с именем "3", то выдает какую-то ошибку и берет значение с третьего файла, но выводит его в отдельный (новый файл).... (((.. и еще, копируется ячейка, а нужна строка из каждого файла..

еще раз прошу прощение за то что, возможно, Вам со мной общаться как глухому с немым, но тяжело все это(

и спасибо!!!
 
Ответить
Сообщениееще раз спасибо!!! извините что такой темный в этих делах и задаю, наверное, глупые вопросы... нужно почитать не так правила форума, как принципы работы макросов.. но к сожалению к этому мозги не заточены(((...

У меня получилось сделать по Вашему примеру, но если я создаю еще один файл с именем "3", то выдает какую-то ошибку и берет значение с третьего файла, но выводит его в отдельный (новый файл).... (((.. и еще, копируется ячейка, а нужна строка из каждого файла..

еще раз прошу прощение за то что, возможно, Вам со мной общаться как глухому с немым, но тяжело все это(

и спасибо!!!

Автор - mefisto
Дата добавления - 23.03.2013 в 11:19
mefisto Дата: Суббота, 23.03.2013, 11:21 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

и даже не вытаскивает из третьего файла значение, а просто открывает это файл "3".... ошибся
 
Ответить
Сообщениеи даже не вытаскивает из третьего файла значение, а просто открывает это файл "3".... ошибся

Автор - mefisto
Дата добавления - 23.03.2013 в 11:21
mefisto Дата: Суббота, 23.03.2013, 11:23 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

если будет проще по ячейкам, то в строке, которую нужно вытащить 6 ячеек
 
Ответить
Сообщениеесли будет проще по ячейкам, то в строке, которую нужно вытащить 6 ячеек

Автор - mefisto
Дата добавления - 23.03.2013 в 11:23
Матрёна Дата: Суббота, 23.03.2013, 11:23 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

mefisto!
Могу предложить другой вариант, если проблема еще актуальна.
 
Ответить
Сообщениеmefisto!
Могу предложить другой вариант, если проблема еще актуальна.

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:23
mefisto Дата: Суббота, 23.03.2013, 11:26 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

очень актуальна.. спасибо
 
Ответить
Сообщениеочень актуальна.. спасибо

Автор - mefisto
Дата добавления - 23.03.2013 в 11:26
Матрёна Дата: Суббота, 23.03.2013, 11:28 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Мой вариант:
1. файлов - сколько угодно,
2. имена файлов - какие угодно,
3. формируется автоматически файл-свод.

Поскольку Вы не показали структуру своих файлов, в моем варианте - выбирается 2 строка в каждом файле и в режиме "Специальная Вставка (Значения) копируется в файл-свод.
 
Ответить
СообщениеМой вариант:
1. файлов - сколько угодно,
2. имена файлов - какие угодно,
3. формируется автоматически файл-свод.

Поскольку Вы не показали структуру своих файлов, в моем варианте - выбирается 2 строка в каждом файле и в режиме "Специальная Вставка (Значения) копируется в файл-свод.

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:28
mefisto Дата: Суббота, 23.03.2013, 11:29 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

вручную?
 
Ответить
Сообщениевручную?

Автор - mefisto
Дата добавления - 23.03.2013 в 11:29
Матрёна Дата: Суббота, 23.03.2013, 11:31 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Все делается автоматически, разумеется.
К сообщению приложен файл: mefisto.rar (54.9 Kb)
 
Ответить
СообщениеВсе делается автоматически, разумеется.

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:31
mefisto Дата: Суббота, 23.03.2013, 11:35 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

чувствую себя тупаком.. капец.... в принципе данные похожи... как происходит сам процесс??
 
Ответить
Сообщениечувствую себя тупаком.. капец.... в принципе данные похожи... как происходит сам процесс??

Автор - mefisto
Дата добавления - 23.03.2013 в 11:35
Матрёна Дата: Суббота, 23.03.2013, 11:38 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Покажите РЕАЛЬНЫЙ файл, из которого нужно "вытаскивать" информацию.


Сообщение отредактировал Матрёна - Суббота, 23.03.2013, 12:16
 
Ответить
СообщениеПокажите РЕАЛЬНЫЙ файл, из которого нужно "вытаскивать" информацию.

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:38
Матрёна Дата: Суббота, 23.03.2013, 11:43 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Макрос читает любое количество файлов с любыми именами в каталоге "БАЗА ДЛЯ СВОДА".


Сообщение отредактировал Матрёна - Суббота, 23.03.2013, 12:17
 
Ответить
СообщениеМакрос читает любое количество файлов с любыми именами в каталоге "БАЗА ДЛЯ СВОДА".

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:43
mefisto Дата: Суббота, 23.03.2013, 11:46 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

вот мой файл
К сообщению приложен файл: 10011.xlsx (16.5 Kb)
 
Ответить
Сообщениевот мой файл

Автор - mefisto
Дата добавления - 23.03.2013 в 11:46
mefisto Дата: Суббота, 23.03.2013, 11:47 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

и размещение файла с макросом имеет значение (директория, диск)??
 
Ответить
Сообщениеи размещение файла с макросом имеет значение (директория, диск)??

Автор - mefisto
Дата добавления - 23.03.2013 в 11:47
Матрёна Дата: Суббота, 23.03.2013, 11:49 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Размещать файл с макросом можно - ГДЕ УГОДНО.
Однако, наличие каталога "БАЗА ДЛЯ СВОДА" ОБЯЗАТЕЛЬНО В КАТАЛОГЕ, в КОТОРОМ РАЗМЕЩЕН ФАЙЛ С МАКРОСОМ!
 
Ответить
СообщениеРазмещать файл с макросом можно - ГДЕ УГОДНО.
Однако, наличие каталога "БАЗА ДЛЯ СВОДА" ОБЯЗАТЕЛЬНО В КАТАЛОГЕ, в КОТОРОМ РАЗМЕЩЕН ФАЙЛ С МАКРОСОМ!

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:49
mefisto Дата: Суббота, 23.03.2013, 11:51 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 116
Репутация: 0 ±
Замечаний: 20% ±

а макрос нужно как-то зпускать? а то я сменил данные в трех первых файлах... и в своде ничего не сменилось
 
Ответить
Сообщениеа макрос нужно как-то зпускать? а то я сменил данные в трех первых файлах... и в своде ничего не сменилось

Автор - mefisto
Дата добавления - 23.03.2013 в 11:51
Матрёна Дата: Суббота, 23.03.2013, 11:59 | Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Макрос надо запускать:ALT F8 - ВЫПОЛНИТЬ.


Сообщение отредактировал Матрёна - Суббота, 23.03.2013, 12:18
 
Ответить
СообщениеМакрос надо запускать:ALT F8 - ВЫПОЛНИТЬ.

Автор - Матрёна
Дата добавления - 23.03.2013 в 11:59
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Функция (макрос) копирования строки из одного файла в другой
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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