| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Работа с типом Range |
| Автор: ИгнатьевАлексей 18.11.2005, 08:47 |
| Друзья! Простенький вопросик от новичка в Excel-евских макросах. Допустим, в переменную типа Range вводится выделенный пользователем диапазон ячеек с одним столбцом (например B5:B25 ). Далее мне надо получить отдельно адрес первой и последней ячейки этого диапазона (т.е. "B5" и "B25" соответственно). Заранее благодарен! |
| Автор: Naghual 18.11.2005, 11:16 | ||||
Добавлено @ 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.
|
| Автор: ИгнатьевАлексей 18.11.2005, 12:45 |
| Спасибо! Я не указывал "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? |
| Автор: bankuss 18.11.2005, 12:57 |
| Dim RR, FirstCell, LastCell As Range на сколько я знаю VB при таком порядке написания, тип Range присваивает только последней переменной, а остальные -тип Variant. Правильно будет: Dim RR As Range, FirstCell As Range, LastCell As Range |
| Автор: Naghual 18.11.2005, 13:06 |
| Set используется при операциях присваивания Объектов. Не строк, не цисел, а именно Объектов. А Address возвращает текст. ;) Ну а про написание Dim тебе bankuss уже ответил. |
| Автор: ИгнатьевАлексей 18.11.2005, 15:55 |
| Спасибо! Если межно, еще один вопрос: Мой макрос обрабатывает объемные таблицы и может работать до часа. Хотелось бы иметь информацию о ходе выполнения, т.е. сколько выполнено, а сколько осталось. Создал форму с надписью в процентах, да вот беда, при выполнении программы форма отображается лишь на мгновение, а потом исчезает под окнами самих книг, да и сами окна книг выглядят так, как будто комп завис. Посоветуйте, пожалуйста, что-нибудь! |
| Автор: Naghual 18.11.2005, 16:05 |
| 1. Сделать книги невидимымы. 2. Перенести код самого макроса в тело Формы. Макрос запускается формой. 3. Показывать форму модально. |
| Автор: likhobory 18.11.2005, 16:35 | ||
еще вариант - выводи инфу в statusbar или в caption приложения |
| Автор: malor 28.12.2008, 13:28 |
| Нужна информация по работе с диапазонами. Читаю книгу “VBA 2003 Самоучитель”, Кузьменко В.Г., 2004г., стр.395. Автор в листинге, приведенном на данной странице использует свойста Row и Rows.Count у объекта типа Range, перед этим на предыдущих страницах не объяснив их суть, что они хранят. Дайте pls ссылку где в инете есть подробное описание рэйнджевских свойств/методов. |
| Автор: Naghual 28.12.2008, 19:05 |
| Некрофил malor поднял мертвую тему и, к тому-же, нарушил правила форума. Модеры - закройте пожалуйста. |
| Автор: malor 28.12.2008, 20:28 |
| Какой пункт http://forum.vingrad.ru/act-boardrules.html |
| Автор: Akina 28.12.2008, 21:03 |
Пункты 10 и 12. |
| Автор: mihanik 6.1.2009, 18:33 |
| malor, Модератор: Пожалуйста, один топик - один вопрос. ЗЫ. Что-то я на праздниках задержался... Пора и в Инет выходить... |