![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Йекс |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Господа, подскажите ламеру. Суть проблемы:
Я при помощи FileSearh нахожу необходиме мне файлы типа xls. в папке "Книги". Далее из каждого это файла необходимо взять данные с ячйки А1 и занести в ту таблицу, с которой запускается макрос (в ячейки а1, а2, а3 и тп по порядку) . Как это сотворить? Set fs = Application.FileSearch With fs .LookIn = "E:\Книги" .Filename = "*.xls" If .Execute > 0 Then For i = 1 To .FoundFiles.Count Range("a" & i) = ????????????????? Next i End If End With Или как эти найденные адреса можно использовать в формулах? |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Необходимо в цикле открытькаждый из файлов и получить данные из открытой книги.
-------------------- Я желаю всем Счастья! |
|||
|
||||
Йекс |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Да так у меня и было. Только это не очень удобно, так как файлов много и весь этот процесс занимает слишком много времени. Как это сделать, не открывая файлы? |
|||
|
||||
mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 11 Всего: 109 |
Как ты себе это представляешь? ![]() По аналогии. Ты хочешь узнать, что написано на первой странице книги, не открывая эту самую книгу... Такое возможно? ![]() ![]() ![]() |
|||
|
||||
Йекс |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Ну примерно если я в какой-либо ячейке напишу формулу типа "='E:\[Книга3.xls]Лист1'!$C$4", то в данной ячейке будут данные из книги3 из ячейки С4. То есть не открывая книгу3 я забил из неё данные в текущую книгу. |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
![]() Все бы хорошо, только то КАК ты себе это представляеш, работает совсем НЕ ТАК. Нужный файл открывается в любом случае. Просто это делает сам Эксель прозрачно для пользователя. -------------------- Я желаю всем Счастья! |
|||
|
||||
Йекс |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Вполне может быть. Тогда возникает вопрос, как сделать так, чтобы Эксель открывал файлы "прозрачно" для меня, а не просто Workbooks.Open. |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Workbooks.Open - это и есть прозрачно для Пользователя.
Не прозрачно это только для программиста. -------------------- Я желаю всем Счастья! |
|||
|
||||
Aloha |
|
||||||
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 2 Всего: 165 |
Йекс
Я опробовал два варианта и сравнил их быстродействие. Вот что получилось (тестировал на специально созданных для этой цели 1000 Excel файлов, ячейка A1 которых содержит имя файла): 1 вариант Этот вариант уже озвучен: Workbooks.Open ... Close.
Примечание:
Здесь для доступа к данным используется ADO
Примечание:
Это сообщение отредактировал(а) Aloha - 28.11.2006, 01:31 |
||||||
|
|||||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Aloha, вами проделана значительная работа.
Предлагаю вам поместить это в ФАК. -------------------- Я желаю всем Счастья! |
|||
|
||||
Йекс |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Aloha
Просто преогромнейшее спасибо. Чесно говоря, я совершенно не понял, как это в Вашем втором методе всё происходит, но работает это действительно превосходно. Методом научного тыка до меня дошло, как копировать не только ячейку а1, но и сразу с десяток необходимых мне ячеек (расположенных на разных листах и в разных частях документа). По скорости действительно не сравнить с тем, что у меня было... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |