powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в Excel собрать из нескольких отдельных диапазонов один несвязный
17 сообщений из 17, страница 1 из 1
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967468
LKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LKO
Гость
Всем доброго времени суток!

Вопрос вот в чем: В макросе в нескольких переменных типа Range (rng1, rng2, rng3) хранятся ссылки на какие-то диапазоны на одном рабочем листе. Нужно что бы еще одна переменная типа Range (rngMulty) хранила ссылку на диапазон, состоящий из нескольких областей (Areas), каждая область - диапазон в одной из переменных rng1 - rng3
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967489
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub myRange()
Dim r1 As Range
Dim r2 As Range
Dim r3 As Range
Dim R As Range

Set r1 = Range("A1")
Set r2 = Range("B2")
Set r3 = Range("C3")


Range(r1.Address & "," & r2.Address & "," & r3.Address).Select
Set R = Selection

End Sub
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967563
LKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LKO
Гость
Через Select...
Не очень хотелось, т.к. макрос ничего не меняет, только читает. А селект вызывает активацию листа, на котором эти диапазоны...

Придется запоминать текущую ячейку, отключать перерисовку экрана, а после отработки макроса возвращаться на запомненную ячейку...
Жаль... :-(
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967751
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LKOЖаль... :-(Проанализируем source:
Код: plaintext
1.
Range(r1.Address & "," & r2.Address & "," & r3.Address).Select
Set R = Selection
Использован метод Range, возвращающий объект Range, который затем и выделяется (.Select)
Чтобы было "не жаль", упрости две строки кода до одной:
Код: plaintext
Set R = Range(r1.Address & "," & r2.Address & "," & r3.Address)
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967898
LongS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё есть штатная функция Union
Код: plaintext
1.
Set rngMulty = Application.Union(rng1, rng2, rng3)
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967918
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4LongS - голова
мой респект
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #32967946
LKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LKO
Гость
LongSА ещё есть штатная функция Union
Код: plaintext
1.
Set rngMulty = Application.Union(rng1, rng2, rng3)


!!!

Большое спасибо. Что-то типа этого и хотелось... :-)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881128
bella_I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день.

Подскажите, как быть в аналогичной ситуации, только переменные rng1, rng2, rng3 - это не range, а string ?
Мне нужно в конечном итоге выделить все эти диапазоны одновременно.

Если написать Range(rng1, rng2).Select, то сработает.
Но Range(rng1, rng2, rng3 ).Select - уже нет

Не могу понять, чем Range("A43,B29,E19").Select, к примеру, отличается от Range(rng1, rng2, rng3).Select.

Пробовала R = rng1 & "," & rng2 & "," & rng3, и потом Range(R).Select - тоже ошибка.

please, help..
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881207
ikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bella_Iтоже ошибка.
какая?
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881296
bella_I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ikki,

ошибка: Method 'Range' of object '_Global' failed
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881388
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Пробовала R = rng1 & "," & rng2 & "," & rng3, и потом Range(R).Select - тоже ошибка.

Должно работать. Пройдите по шагам (F8), посмотрите, чему равно R.
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881528
ikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bella_I,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub test()
  Dim rng1$, rng2$, rng3$, r$
  rng1 = "A5": rng2 = "B15": rng3 = "D6"
  r = rng1$ & "," & rng2 & "," & rng3
  Range(r).Select
  rng1 = "А5"
  r = rng1$ & "," & rng2 & "," & rng3
  Range(r).Select
End Sub


первый Select отрабатывает нормально, второй - выдает вашу ошибку.
проверьте строки-адреса на наличие кириллицы
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881863
bella_I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Казанский,

Когда с помощью F8 прохожу процедуру, после шага R = rng1 & "," & rng2 & "," & rng3 получается R = "E6,F6,S5". Вроде все правильно.
Следующие шаг Range(R).Select выдает ошибку Method 'Range' of object '_Global' failed


ikki,

Значения переменных получаются программным путем, названия переменных и прочее проверила автозаменой a,o,e,p - кириллица вроде бы не при чем.
Кстати, скопировала ваш пример - та же самая ошибка вылетает на первом же селекте..

Может, что-то с настройками excel? О 2007 речь
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37881887
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bella_I,

а влоб не хотите ? :)

set rngmulti=union(range(rng1),range(rng2),range(rng3)...)
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37882272
bella_I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_slan_,

Если это поможет решить задачу, то да)
Я ведь попробовала этот способ сначала, но что-то, видимо, сделала не так.
Скорее всего написала set rngmulti=union(rng1,rng2,rng3), но у меня-то переменные типа string. Поэтому не проканало, и я больше в эту сторону не смотрела.


Итак, сделала set rngmulti=union(range(rng1),range(rng2),range(rng3))

Результат: если переменная rngmulti не объявлена, то type mismatch
Если rngmulti объявить как Range, или Ranges, то object required

По справке для этой функции Return Value - Range, то есть почему во втором случае object required - непонятно
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37882338
ikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bella_I,
а у вас случайно не лист диаграммы является активным?
ибо, по-хорошему, перед range() должен идти объект-владелец.
и, хотя, короткая форма допустима, но иногда чревата :)
...
Рейтинг: 0 / 0
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
    #37882476
bella_I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ikki,

Все происходит на листе со сводной таблицей, он в текущий момент активен.

Получилось в итоге знаете как?

На вот такую штуку выдавалась ошибка object required:
set rngmulti=union(ActiveSheet.range(rng1),ActiveSheet.range(rng2),ActiveSheet.range(rng3)).Select

Сделала
set rngmulti=union(ActiveSheet.range(rng1),ActiveSheet.range(rng2),ActiveSheet.range(rng3))
rngmulti.Select

и получила, наконец, что хотела.

Кстати, ActiveSheet в последнем удачном случае - необязателен, т.е. получается и без него.
Ох уж эти универсальные ошибки..

Спасибо всем, кто помогал!

ps: почему не получалось через R = rng1 & "," & rng2 & "," & rng3 все-таки непонятно.. но уже не так актуально, раз есть альтернативный способ.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в Excel собрать из нескольких отдельных диапазонов один несвязный
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]