Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 27.05.2010, 12:53   #1
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию Excel 2003 копирование из разных файлов в один

Здравствуйте товарищи программисты! Как и большинство посетителей этого форума, я нуждаюсь в вашей квалифицированной помощи. Шеф поставил задачу сделать сводную таблицу из данных которые хранятся на разных локальных дисках в разных файлах (каждый день данные этих файлов обновляются). Тоесть перед тем как приступить к сводной таблице нужно все оформить в один файл. Я попробовал реализовать все это ссылками на ячейки из этих файлов и вроде бы получил результат, но открытие такого файла подгружает проц компа на 100% (при закрытых файлах исходниках). Помогите реализовать комплексное копирование областей книг с помощью VB. Заранее спасибо!

Немного подробнее:
1. есть с десяток файлов Excel, в каждом из них по несколько листов

2. нужно обратиться к каждому файлу к конкретному листу с целью копирования(лучше конечно если не копировать а использовать что-то на подобии OLE) из них некой области данных(не всего листа целиком) в отдельный пустой файл (в конкретную область).

3. этот конечный файл будет в последствии базой для сводной таблицы

4. структура файлов-исходников неизменна, кол-во строк и столбцов тоже

5. файлы-исходники в моем случае будут закрыты

Заранее благодарю за помощь
mixaxa вне форума   Ответить с цитированием
Старый 27.05.2010, 12:58   #2
The_Prist
Профессионал
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Адрес: Москва
Сообщений: 1,088
Репутация: 156
По умолчанию

Здравствуйте.
Это не подойдет?
Еще это.

А еще можно воспользоваться поиском - обсуждалась тема не один раз.
__________________
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума   Ответить с цитированием
Старый 27.05.2010, 13:33   #3
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию

спасибо что так быстро откликнулись. консолидация бы подошла, но с этим проблемы....дело в том что в одном файле есть столбцы с одинаковыми названиями, поменять названия я не могу, а консолидация фигачит значения двух столбцов в один и от этого получается каша
mixaxa вне форума   Ответить с цитированием
Старый 27.05.2010, 13:45   #4
The_Prist
Профессионал
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Адрес: Москва
Сообщений: 1,088
Репутация: 156
По умолчанию

А причем здесь консолидация? Вы нормально по ссылкам смотрели? Или просто ориентировались на адрес страницы, где упомянуто Consolidated? В приложенных по ссылкам решениях ничего не консолидируется в прямом понимании. Тупо копируются данные с листов друг за другом.
__________________
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума   Ответить с цитированием
Старый 27.05.2010, 19:48   #5
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию

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

Последний раз редактировалось mixaxa; 27.05.2010 в 20:04.
mixaxa вне форума   Ответить с цитированием
Старый 27.05.2010, 19:55   #6
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию

я в VBA не силен, а потому прошу вас написать обработчик копирования данных из книги 1.xls листа data ячеек ("K14:CE28388") в книгу 2.xls лист Data ячейки ("K2:CE28376"), а для всех остальных книг я уже по образу и подобию доделаю. заранее благодарю.
mixaxa вне форума   Ответить с цитированием
Старый 27.05.2010, 20:40   #7
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,903
Репутация: 650

skype: d_ober1
По умолчанию

Попробуйте так

Код:
Private Sub CommandButton1_Click()
Dim oPATH  As String, oFile As String, oList As String
Dim dt
oPATH = "C:\"
oFile = "1.xls"
oList = "data" 'Имя листа
  Application.ScreenUpdating = False
  Set sh = GetObject(oPATH & oFile).Sheets(oList)
   
   dt = sh.Range("K14:CE28388")
ThisWorkbook.Worksheets("Data").Range("K2:CE28376") = dt
 sh.Parent.Close (False)
  Application.ScreenUpdating = True
End Sub
__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Старый 28.05.2010, 00:54   #8
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию

doober Спасибо - это то чего мне как раз и не хватало!
mixaxa вне форума   Ответить с цитированием
Старый 28.05.2010, 11:46   #9
mixaxa
 
Регистрация: 14.05.2010
Сообщений: 9
Репутация: 10
По умолчанию

А как сделать чтобы формат исходных ячеек сохранялся?
mixaxa вне форума   Ответить с цитированием
Старый 28.05.2010, 13:07   #10
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,903
Репутация: 650

skype: d_ober1
По умолчанию

Код:
Sub Update()
Dim oPATH  As String, oFile As String, oList As String
Dim dt
oPATH = "C:\"
oFile = "1.xls"
oList = "data"
  Application.ScreenUpdating = False
  Set sh = GetObject(oPATH & oFile).Sheets(oList)
  sh.Range("K14:CE28388").Copy ThisWorkbook.Worksheets("Data").Range("K2")
 sh.Parent.Close (False)
  Application.ScreenUpdating = True
End Sub
__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на копирование ячеек из разных листов на один. hozpraktik Microsoft Office Excel 8 28.05.2010 10:00
Резервное копирование папки с файлами xls (Excel 2003) vfv Microsoft Office Excel 11 12.03.2010 18:05
несколько разных строк из разных файлов сформировать в один Иван123456 Microsoft Office Excel 3 30.07.2009 17:05
Свод нескольких файлов Excel в один Стасон Microsoft Office Excel 2 24.02.2009 12:13
Копирование двух файлов в один JRcoker Общие вопросы Delphi 5 18.07.2008 21:37


13:24.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.