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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2011, 14:47   #1
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию обращение к разным книгам

подскажите пожалуйста! нужен совет

хочу сделать название книги переменной, но не пойму, как написать к ней потом обращение
мой вариант такой:

Код:
Dim Кеу_ As Workbook, Table_ As Workbook

'далее заношу название книг в ячейки, откуда их потом и тащу
Key_ = Workbooks("KodKey.xls").Worksheets("KodKey").Cells(5, 7).Value
Table_ = Workbooks("KodKey.xls").Worksheets("KodKey").Cells(7, 7).Value

'НО ПРИ ОБРАЩЕНИИ ВЫДАЕТ ОШИБКУ
FirstRowKey_ = Workbooks(Key_).ActiveSheet.Selection.Row
или может как-нибудь подругому можно в переменные занести названия??
Bape}l{ka вне форума Ответить с цитированием
Старый 24.06.2011, 15:22   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Приветствую!

Замените
FirstRowKey_ = Workbooks(Key_).ActiveSheet.Selecti on.Row
на
Application.Workbooks(Key_).Activat e
FirstRowKey_ = Selection.Row

У меня все сработало
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 24.06.2011, 16:20   #3
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

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

если Книга1...ячейка1 = книга2...ячейка2 то... да еще и в цикле?
Bape}l{ka вне форума Ответить с цитированием
Старый 24.06.2011, 16:23   #4
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Можете!
Только у вас в примере обращение шло к текущей активной ячейке (где бы она не была)
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 24.06.2011, 16:25   #5
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

.ActiveSheet.Selection - насколько я понимаю, это выделенная ячейка/диапазон. подразумевается что она активна??
Bape}l{ka вне форума Ответить с цитированием
Старый 24.06.2011, 16:28   #6
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Выделенная ячейка АКТИВНОГО листа
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 24.06.2011, 16:31   #7
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

понятно.. а не подскажите тогда, как определить Имя активного листа??

т.е. в принципе Selection может быть и не на активном листе??
Bape}l{ka вне форума Ответить с цитированием
Старый 24.06.2011, 16:34   #8
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Это вы сами должны уже знать в какой книге находится активный диапазон.... и передать в макрос эту книгу т.е. активировать ее Workbooks(Key_).Activate
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 24.06.2011, 16:54   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Dim Кеу_ As Workbook, Table_ As Workbook

'далее заношу название книг в ячейки, откуда их потом и тащу
Key_ = Workbooks("KodKey.xls").Worksheets("KodKey").Cells(5, 7).Value
неправильно так писать.
у вас макрос должен вылететь на строке с Key_ =,
ибо вы переменной типа Workbook присваиваете текстовое значение.

И зачем заносить имя книги в ячейку, если это имя уже прописано в коде???
EducatedFool вне форума Ответить с цитированием
Старый 24.06.2011, 17:09   #10
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

подскажите пожалуйста, как правильно, я о том и спрашиваю

и в каком коде оно прописано??

мне надо, чтобы макрос работал с разными книгами, соответственно, чтобы можно было задать, с какими именно из открытых ему работать.

как еще можно занести Workbook в переменную??
Bape}l{ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос на разноску данных по книгам 804040 Microsoft Office Excel 18 01.03.2011 20:21
подключение одной DBGrid к разным DataSource Rin БД в Delphi 3 12.01.2011 12:15
как привязать одну кнопку к разным книгам akd2009 Microsoft Office Excel 2 02.02.2010 16:26
Возможно ли самому по книгам изучить С++ покаЧайник Свободное общение 11 07.10.2009 18:42
Клетки в listView разным цветом Altera Компоненты Delphi 9 24.09.2009 16:08