![]() |
|
Модераторы: mihanik |
![]()
|
|
| ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Друзья!
Простенький вопросик от новичка в Excel-евских макросах. Допустим, в переменную типа Range вводится выделенный пользователем диапазон ячеек с одним столбцом (например B5:B25 ). Далее мне надо получить отдельно адрес первой и последней ячейки этого диапазона (т.е. "B5" и "B25" соответственно). Заранее благодарен! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
| Naghual |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Добавлено @ 11:23 The following example displays four different representations of the same cell address on Sheet1. The comments in the example are the addresses that will be displayed in the message boxes.
Это сообщение отредактировал(а) Naghual - 18.11.2005, 11:26 -------------------- Я желаю всем Счастья! |
||||
|
|||||
| ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Спасибо!
Я не указывал "Set" Хочется спросить, почему в случае Set FirstCell = Cells(RR.Row, RR.Column) "Set" необходимо, а команда FirstCellAddr = FirstCell.Address выполняется без "Set" , ведь в обоих случаях идет присваивание переменной определенного типа значений соответствующего типа, или не совсем так? И еще маленький вопросик: весь мир пишет типа Dim RR As Range Dim FirstCell As Range Dim LastCell As Range, а я пишу для краткости: Dim RR, FirstCell, LastCell As Range Может я делаю ошибку, или это плохой стиль напасания кода на VBA? -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: нет Всего: 4 |
Dim RR, FirstCell, LastCell As Range
на сколько я знаю VB при таком порядке написания, тип Range присваивает только последней переменной, а остальные -тип Variant. Правильно будет: Dim RR As Range, FirstCell As Range, LastCell As Range |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Set используется при операциях присваивания Объектов. Не строк, не цисел, а именно Объектов.
А Address возвращает текст. ;) Ну а про написание Dim тебе bankuss уже ответил. -------------------- Я желаю всем Счастья! |
|||
|
||||
| ИгнатьевАлексей |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 369 Регистрация: 18.11.2005 Репутация: 2 Всего: 3 |
Спасибо!
Если межно, еще один вопрос: Мой макрос обрабатывает объемные таблицы и может работать до часа. Хотелось бы иметь информацию о ходе выполнения, т.е. сколько выполнено, а сколько осталось. Создал форму с надписью в процентах, да вот беда, при выполнении программы форма отображается лишь на мгновение, а потом исчезает под окнами самих книг, да и сами окна книг выглядят так, как будто комп завис. Посоветуйте, пожалуйста, что-нибудь! -------------------- Vingrad - FOREVER !!! "Как вы яхту назовете - так она и поплывет!" Капитан Врунгель |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
1. Сделать книги невидимымы.
2. Перенести код самого макроса в тело Формы. Макрос запускается формой. 3. Показывать форму модально. -------------------- Я желаю всем Счастья! |
|||
|
||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 10 Всего: 20 |
еще вариант - выводи инфу в statusbar или в caption приложения |
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
Нужна информация по работе с диапазонами.
Читаю книгу “VBA 2003 Самоучитель”, Кузьменко В.Г., 2004г., стр.395. Автор в листинге, приведенном на данной странице использует свойста Row и Rows.Count у объекта типа Range, перед этим на предыдущих страницах не объяснив их суть, что они хранят. Дайте pls ссылку где в инете есть подробное описание рэйнджевских свойств/методов. |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 13 Всего: 23 |
F1+F2: вот тебе и ссылки (+ MDSN в помощь)
Объёмные таблицы это сколько? 100 записей;1000 или 10 000 - отлаженный макрос переваривает ну точно не за час ! (конечно зависит от к-ва столбцов и "экзотичности" необходимых действий) Здаётся мне - код не оптимизирован, а ход выполнения макроса действительно удобнее всего кинуть в status bar, да и таймер работы туда же Это сообщение отредактировал(а) FINANSIST - 28.12.2008, 18:55 -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Некрофил malor поднял мертвую тему и, к тому-же, нарушил правила форума.
Модеры - закройте пожалуйста. -------------------- Я желаю всем Счастья! |
|||
|
||||
| malor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 632 Регистрация: 17.11.2006 Репутация: нет Всего: нет |
||||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 9 Всего: 109 |
malor,
Модератор: Пожалуйста, один топик - один вопрос. ЗЫ. Что-то я на праздниках задержался... Пора и в Инет выходить... |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |