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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2018, 00:48   #1
Игорь_зап
 
Регистрация: 27.11.2011
Сообщений: 5
По умолчанию Активация рабочей книги по маске

Добрый день.
Возник вопрос. Открыты два рабочих файла excel. Текущий файл (например, Current.xls), в котором будет запускаться макрос и файл имя которого начинается на GROUP (далее в имени файла возможны варианты и находятся в разных каталогах). Как активировать файл GROUP*.xls с файла Current.xls?
Игорь_зап вне форума Ответить с цитированием
Старый 21.11.2018, 08:10   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

В цикле по открытых книгах пройтись сравнивая .name с group. А когда нашел, то .activate или .[a1].select. Это раз. А два может быть https://stackoverflow.com/questions/...orkbook-in-vba
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.11.2018, 10:21   #3
Игорь_зап
 
Регистрация: 27.11.2011
Сообщений: 5
По умолчанию

Спасибо за ответ.
Я не понимаю как прописать цикл, если мне известно неполное имя файла (известно только первые пять букв - GROUP).
Во втором варианте нужно знать полностью имя файла - проблемка.
Игорь_зап вне форума Ответить с цитированием
Старый 21.11.2018, 10:23   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

В абсолютном большинстве случаев коду нет необходимости активировать книги, а нужно лишь их определить для дальнейшей работы с ними. Определили, получили ссылку на объект, работаем по ссылке.
Активировать может быть нужно только в финале, чтоб показать нужную юзеру для дальнейшей работы.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.11.2018, 11:27   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

проблема в незнании концовки имени файла GROUP?
Код:
Dim wb As Workbook
For Each wb In Workbooks
     if Instr(wb.Name,"GROUP") > 0 then
        with wb
         ' do some actions with 
        end with
         exit for
     end if
Next wb
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.11.2018, 11:46   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

тут далеко не всё так просто.
дело в том, что
Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
For Each wb In Workbooks
перебирает открытые книги только в пределах одного запущенного экземпляра Excel (одно Application)
попробуйте запустить несколько раз Excel, откройте в каждом свой файл и проверьте этот макрос.
У меня, например, он не работает.


Цитата:
Сообщение от Игорь_зап Посмотреть сообщение
Открыты два рабочих файла excel.
а кто и как эти два файла открыл?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2018, 12:13   #7
Игорь_зап
 
Регистрация: 27.11.2011
Сообщений: 5
По умолчанию

Спасибо Всем за ответы.
У меня, например, открыто несколько файлов excel (извиняюсь, я писал сразу только про два файла, но теоритически могут быть открыты и другие файлы). И мне нужно скопировать данные из файла Current.xlsm в файл, который тоже открыт и имеет имя, которое начинается с GROUP... .xls. Макрос будет запускаться из файла Current.xlsm.
Для определения нужных столбцов для вставки данных и вставки самих данных нужно перейти в книгу GROUP... .xls.
То есть я думал при помощи цикла перебрать по маске файла все открытые рабочие книги, найти её и активировать.
Открываю я эти файлы на своём компьютере.
Не понял вопроса "как открыл"?
Попробовал у себя макрос Александра - работает. Не сильно понял в каком случае он не сможет работать.
Игорь_зап вне форума Ответить с цитированием
Старый 21.11.2018, 12:32   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
перебирает открытые книги только в пределах одного запущенного экземпляра Excel (одно Application)
попробуйте запустить несколько раз Excel, откройте в каждом свой файл и проверьте этот макрос.
У меня, например, он не работает.
Cоветы as is. ТС не писал о несколько Application'ов. В такой ситуации пусть держит group закрытый и кормит его макросу через OpenDialog
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.11.2018, 13:23   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Cоветы as is. ТС не писал о несколько Application'ов. В такой ситуации пусть держит group закрытый и кормит его макросу через OpenDialog
Ага. Так я же ничего против вашего совета не имею.
Просто отметил, что могут быть подводные камни.
Вот, лично у меня, макрос не работает как надо.
Но у TC, судя по его отзыву, всё хорошо.


Цитата:
Сообщение от Игорь_зап Посмотреть сообщение
Попробовал у себя макрос Александра - работает.
ну и отлично. Это же главное!


Цитата:
Сообщение от Игорь_зап Посмотреть сообщение
Не сильно понял в каком случае он не сможет работать.
когда книга открыта в другом экземпляере Excel. Ну, грубо говоря, одновременно может работать несколько одновременно запущенных Excel.
excel2work.jpg

Но, раз у Вас всё работает, то значит, Вас эти детали не должны беспокоить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2018, 15:02   #10
Игорь_зап
 
Регистрация: 27.11.2011
Сообщений: 5
По умолчанию

Спасибо Всем за комментарии. Процесс двинулся дальше.
Проверил у себя запуск приложений excel - работает одно. Но спасибо большое за разъяснение такого нюанса.
Как говорится: "Профессионализм это знание нюансов".
Игорь_зап вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос переноса всех данных из одной рабочей книги REztor Microsoft Office Excel 8 31.12.2013 23:17
Создание копии рабочей книги manula Microsoft Office Excel 1 24.09.2013 11:20
Сохранение рабочей книги с именем, представляющим собой текущую дату YJYNGK Microsoft Office Excel 2 30.10.2010 21:12
Копирование данных из одной рабочей книги в другую макросом. Andrey3055 Microsoft Office Excel 2 30.10.2009 22:00
Удаление рабочей книги? plyacek Microsoft Office Excel 2 01.06.2009 17:26