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

Вход

Регистрация

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

 

= Мир MS Excel/Работа с большим количеством диапазонов. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа с большим количеством диапазонов. (Макросы/Sub)
Работа с большим количеством диапазонов.
Sancho Дата: Понедельник, 30.05.2016, 17:23 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
О великие и всемогущие опять без вашей помощи ни как
Ни как не могу вписать большое количество диапазонов, т.к. скорее всего число символов превышает 255 знаков. как мне поступить?
[vba]
Код
If Target.Cells.Count > 1 Then Exit Sub
       If Not Intersect(Target, Range("g3:g44,g46:g79,g81:g97,g99:g107,g109:g175,g177:g257,g259:g280,g282:g368,g370:g399,g401:g704,g706:g875,g877:g911,g913:g1017,g1019:g1159,g1161:g1191,g1193:g1227,g1229:g1286,g1288:g1317,g1319:g1329,g1331:g1338,g1340:g1382,g1384:g1436,g1438:g1470,g1472:g1508")) Is Nothing Then
       'g1510:g1595,g1597:g1673,g1675:g1715,g1717:g1763
       Target.Interior.ColorIndex = 46
    End If
[/vba]
не влезает буквально чуть чуть (все что за апострофом). Как мне поступить? Использование переноса строки тоже не срабатывает
[vba]
Код

...,g1472:g1508", _
"g1510:g1595,..."))
[/vba]
В именованный диапазон так же не влезает такое количество аргументов. Может возможно было бы указать диапазон "g3:g1763", а затем указать исключения из него "g45,g80,...,g1716".
Возможно ли данные диапазоны описать один раз, а затем использовать их в трех макросах?
Заранее спасибо за отклик.


Сообщение отредактировал Sancho - Понедельник, 30.05.2016, 17:24
 
Ответить
СообщениеО великие и всемогущие опять без вашей помощи ни как
Ни как не могу вписать большое количество диапазонов, т.к. скорее всего число символов превышает 255 знаков. как мне поступить?
[vba]
Код
If Target.Cells.Count > 1 Then Exit Sub
       If Not Intersect(Target, Range("g3:g44,g46:g79,g81:g97,g99:g107,g109:g175,g177:g257,g259:g280,g282:g368,g370:g399,g401:g704,g706:g875,g877:g911,g913:g1017,g1019:g1159,g1161:g1191,g1193:g1227,g1229:g1286,g1288:g1317,g1319:g1329,g1331:g1338,g1340:g1382,g1384:g1436,g1438:g1470,g1472:g1508")) Is Nothing Then
       'g1510:g1595,g1597:g1673,g1675:g1715,g1717:g1763
       Target.Interior.ColorIndex = 46
    End If
[/vba]
не влезает буквально чуть чуть (все что за апострофом). Как мне поступить? Использование переноса строки тоже не срабатывает
[vba]
Код

...,g1472:g1508", _
"g1510:g1595,..."))
[/vba]
В именованный диапазон так же не влезает такое количество аргументов. Может возможно было бы указать диапазон "g3:g1763", а затем указать исключения из него "g45,g80,...,g1716".
Возможно ли данные диапазоны описать один раз, а затем использовать их в трех макросах?
Заранее спасибо за отклик.

Автор - Sancho
Дата добавления - 30.05.2016 в 17:23
Roman777 Дата: Понедельник, 30.05.2016, 17:27 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 700
Репутация: 75 ±
Замечаний: 20% ±

Excel 2007, Excel 2013
Sancho, используйте ф-ию Union:
[vba]
Код
Dim Rng as range
set Rng = Union(Range("A1"), Range("B2"),... ,...)
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 30.05.2016, 17:46
 
Ответить
СообщениеSancho, используйте ф-ию Union:
[vba]
Код
Dim Rng as range
set Rng = Union(Range("A1"), Range("B2"),... ,...)
[/vba]

Автор - Roman777
Дата добавления - 30.05.2016 в 17:27
Sancho Дата: Понедельник, 30.05.2016, 17:48 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
Roman777, мне не понятно как union использовать, ведь каждый диапазон надо описать, как я понимаю
[vba]
Код
Rng = Union(Range("g3:g44"), Range("g46:g79"),,)
[/vba]
, а это еще более увеличит строку
 
Ответить
СообщениеRoman777, мне не понятно как union использовать, ведь каждый диапазон надо описать, как я понимаю
[vba]
Код
Rng = Union(Range("g3:g44"), Range("g46:g79"),,)
[/vba]
, а это еще более увеличит строку

Автор - Sancho
Дата добавления - 30.05.2016 в 17:48
Roman777 Дата: Понедельник, 30.05.2016, 18:00 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 700
Репутация: 75 ±
Замечаний: 20% ±

Excel 2007, Excel 2013
Sancho, Да, как Вы и неделали, просто это позволит Вам в каждый описываемый диапазон запихнуть то, что Вы запихивали в 1 (до 255 символов).
[vba]
Код
Set rng = Union(Range("g3:g44,g46:g79,g81:g97,g99:g107,g109:g175,g177:g257,g259:g280,g282:g368,g370:g399,g401:g704,g706:g875,g877:g911,g913:g1017,g1019:g1159,g1161:g1191,g1193:g1227,g1229:g1286,g1288:g1317,g1319:g1329,g1331:g1338,g1340:g1382,g1384:g1436,g1438:g1470,g1472:g1508"), Range("g1510:g1595,g1597:g1673,g1675:g1715,g1717:g1763"))
[/vba]
Ф-я Union объединяет диапазоны.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 30.05.2016, 18:04
 
Ответить
СообщениеSancho, Да, как Вы и неделали, просто это позволит Вам в каждый описываемый диапазон запихнуть то, что Вы запихивали в 1 (до 255 символов).
[vba]
Код
Set rng = Union(Range("g3:g44,g46:g79,g81:g97,g99:g107,g109:g175,g177:g257,g259:g280,g282:g368,g370:g399,g401:g704,g706:g875,g877:g911,g913:g1017,g1019:g1159,g1161:g1191,g1193:g1227,g1229:g1286,g1288:g1317,g1319:g1329,g1331:g1338,g1340:g1382,g1384:g1436,g1438:g1470,g1472:g1508"), Range("g1510:g1595,g1597:g1673,g1675:g1715,g1717:g1763"))
[/vba]
Ф-я Union объединяет диапазоны.

Автор - Roman777
Дата добавления - 30.05.2016 в 18:00
Sancho Дата: Понедельник, 30.05.2016, 19:17 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 0 ±
Замечаний: 0% ±

2007, 2010, 2013
Спасибо Roman777, завтра буду пытать функцию
 
Ответить
СообщениеСпасибо Roman777, завтра буду пытать функцию

Автор - Sancho
Дата добавления - 30.05.2016 в 19:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа с большим количеством диапазонов. (Макросы/Sub)
Страница 1 из 11
Поиск:

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