Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Что такое range при использовании Set? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Что такое range при использовании Set? (Макросы/Sub)
Что такое range при использовании Set?
Roman777 Дата: Среда, 08.06.2016, 16:57 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 81 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Добрый всем день!
Хочу уточнить непонятный, немного для себя момент (до сих пор).
В выражении:
[vba]
Код
Dim rng as Range - определяем тип переменной?
Set rng = Union(Cells(1,1),Cells(2,2))
[/vba]
чем является фактически rng? массивом ссылок на конкретные ячейки?


Много чего не знаю!!!!
 
Ответить
СообщениеДобрый всем день!
Хочу уточнить непонятный, немного для себя момент (до сих пор).
В выражении:
[vba]
Код
Dim rng as Range - определяем тип переменной?
Set rng = Union(Cells(1,1),Cells(2,2))
[/vba]
чем является фактически rng? массивом ссылок на конкретные ячейки?

Автор - Roman777
Дата добавления - 08.06.2016 в 16:57
SLAVICK Дата: Среда, 08.06.2016, 17:04 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1962
Репутация: 669 ±
Замечаний: 0% ±

2007,2010,2013,2016
Сначала Вы говорите:
переменная rng - это диапазон.
Потом уточняете:
[vba]
Код
Set rng = Union(Cells(1,1),Cells(2,2))
[/vba]
Это же можно написать и так:
[vba]
Код
Set rng = Range(Cells(1, 1), Cells(2, 2))
[/vba]
[vba]
Код
Sub d()
Dim rng As Range
Set rng = Union(Cells(1, 1), Cells(2, 2))
Debug.Print rng.Address
Set rng = Range(Cells(1, 1), Cells(2, 2))
Debug.Print rng.Address
End Sub
[/vba]

Т.е. rng - это диапазон


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеСначала Вы говорите:
переменная rng - это диапазон.
Потом уточняете:
[vba]
Код
Set rng = Union(Cells(1,1),Cells(2,2))
[/vba]
Это же можно написать и так:
[vba]
Код
Set rng = Range(Cells(1, 1), Cells(2, 2))
[/vba]
[vba]
Код
Sub d()
Dim rng As Range
Set rng = Union(Cells(1, 1), Cells(2, 2))
Debug.Print rng.Address
Set rng = Range(Cells(1, 1), Cells(2, 2))
Debug.Print rng.Address
End Sub
[/vba]

Т.е. rng - это диапазон

Автор - SLAVICK
Дата добавления - 08.06.2016 в 17:04
nilem Дата: Среда, 08.06.2016, 17:05 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1188
Репутация: 434 ±
Замечаний: 0% ±

Excel 2013
является объектом Range со своими свойствами и методами. Например, rng.Address дает адрес объединения ваших ячеек Cells(1,1) и Cells(2,2)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеявляется объектом Range со своими свойствами и методами. Например, rng.Address дает адрес объединения ваших ячеек Cells(1,1) и Cells(2,2)

Автор - nilem
Дата добавления - 08.06.2016 в 17:05
_Boroda_ Дата: Среда, 08.06.2016, 17:05 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 10334
Репутация: 4357 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
rng так будет кучей ячеек. Работать с ним можно как с обычным Range.
as Range - это мы говорим, что rng у нас будет каким-то диапазоном ячеек (одна или несколько).


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеrng так будет кучей ячеек. Работать с ним можно как с обычным Range.
as Range - это мы говорим, что rng у нас будет каким-то диапазоном ячеек (одна или несколько).

Автор - _Boroda_
Дата добавления - 08.06.2016 в 17:05
Roman777 Дата: Среда, 08.06.2016, 17:08 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 747
Репутация: 81 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
SLAVICK, получается что rng будет всегда иметь фактическое представление на существующем листе и никак не может быть каким-то "виртуальным" отдельным объектом, не относящимся к какому-либо листу любых открытых книг?


Много чего не знаю!!!!
 
Ответить
СообщениеSLAVICK, получается что rng будет всегда иметь фактическое представление на существующем листе и никак не может быть каким-то "виртуальным" отдельным объектом, не относящимся к какому-либо листу любых открытых книг?

Автор - Roman777
Дата добавления - 08.06.2016 в 17:08
_Boroda_ Дата: Среда, 08.06.2016, 17:11 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 10334
Репутация: 4357 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Какой-либо лист любой открытой книги это все равно существующий лист.
Вы лучше "огласите весь список" - что В ИТОГЕ хотите получить?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКакой-либо лист любой открытой книги это все равно существующий лист.
Вы лучше "огласите весь список" - что В ИТОГЕ хотите получить?

Автор - _Boroda_
Дата добавления - 08.06.2016 в 17:11
SLAVICK Дата: Среда, 08.06.2016, 17:14 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 1962
Репутация: 669 ±
Замечаний: 0% ±

2007,2010,2013,2016
всегда иметь фактическое представление на существующем листе

Почему же всегда - только после того как вы его определите, т.е. скажете
[vba]
Код
Set rng = Union(Cells(1, 1), Cells(2, 2))
[/vba]
а до того он будет равен "Nothing" :D
быть каким-то "виртуальным" отдельным объектом

может вам не Range а Array нужен?


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
всегда иметь фактическое представление на существующем листе

Почему же всегда - только после того как вы его определите, т.е. скажете
[vba]
Код
Set rng = Union(Cells(1, 1), Cells(2, 2))
[/vba]
а до того он будет равен "Nothing" :D
быть каким-то "виртуальным" отдельным объектом

может вам не Range а Array нужен?

Автор - SLAVICK
Дата добавления - 08.06.2016 в 17:14
SLAVICK Дата: Среда, 08.06.2016, 18:46 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1962
Репутация: 669 ±
Замечаний: 0% ±

2007,2010,2013,2016
А я вот тоже покрутил ADD - но про ControlFormat - забыл - редко эти листбоксы делаю. :(
а куда сообщение Марины делось?


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Среда, 08.06.2016, 18:47
 
Ответить
СообщениеА я вот тоже покрутил ADD - но про ControlFormat - забыл - редко эти листбоксы делаю. :(
а куда сообщение Марины делось?

Автор - SLAVICK
Дата добавления - 08.06.2016 в 18:46
Manyasha Дата: Среда, 08.06.2016, 18:49 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 1817
Репутация: 751 ±
Замечаний: 0% ±

Excel 2007, 2010
Решила все-таки про DropDown в новую тему перенести, продолжение тут
а куда сообщение Марины делось?

не успела :D


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеРешила все-таки про DropDown в новую тему перенести, продолжение тут
а куда сообщение Марины делось?

не успела :D

Автор - Manyasha
Дата добавления - 08.06.2016 в 18:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Что такое range при использовании Set? (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!