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

Вопрос вот в чем: В макросе в нескольких переменных типа Range (rng1, rng2, rng3) хранятся ссылки на какие-то диапазоны на одном рабочем листе. Нужно что бы еще одна переменная типа Range (rngMulty) хранила ссылку на диапазон, состоящий из нескольких областей (Areas), каждая область - диапазон в одной из переменных rng1 - rng3
...
Рейтинг: 0 / 0
18.03.2005, 10:13
    #32967489
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
Код: 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
18.03.2005, 10:45
    #32967563
LKO
LKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
Через Select...
Не очень хотелось, т.к. макрос ничего не меняет, только читает. А селект вызывает активацию листа, на котором эти диапазоны...

Придется запоминать текущую ячейку, отключать перерисовку экрана, а после отработки макроса возвращаться на запомненную ячейку...
Жаль... :-(
...
Рейтинг: 0 / 0
18.03.2005, 11:39
    #32967751
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
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
18.03.2005, 12:30
    #32967898
LongS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
А ещё есть штатная функция Union
Код: plaintext
1.
Set rngMulty = Application.Union(rng1, rng2, rng3)
...
Рейтинг: 0 / 0
18.03.2005, 12:36
    #32967918
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
4LongS - голова
мой респект
...
Рейтинг: 0 / 0
18.03.2005, 12:44
    #32967946
LKO
LKO
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
LongSА ещё есть штатная функция Union
Код: plaintext
1.
Set rngMulty = Application.Union(rng1, rng2, rng3)


!!!

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

Подскажите, как быть в аналогичной ситуации, только переменные 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
16.07.2012, 19:08
    #37881207
ikki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
bella_Iтоже ошибка.
какая?
...
Рейтинг: 0 / 0
16.07.2012, 20:36
    #37881296
bella_I
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
ikki,

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

Должно работать. Пройдите по шагам (F8), посмотрите, чему равно R.
...
Рейтинг: 0 / 0
17.07.2012, 01:47
    #37881528
ikki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
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
17.07.2012, 11:18
    #37881863
bella_I
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
Казанский,

Когда с помощью 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
17.07.2012, 11:27
    #37881887
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
bella_I,

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

set rngmulti=union(range(rng1),range(rng2),range(rng3)...)
...
Рейтинг: 0 / 0
17.07.2012, 14:27
    #37882272
bella_I
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
_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
17.07.2012, 14:56
    #37882338
ikki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
bella_I,
а у вас случайно не лист диаграммы является активным?
ибо, по-хорошему, перед range() должен идти объект-владелец.
и, хотя, короткая форма допустима, но иногда чревата :)
...
Рейтинг: 0 / 0
17.07.2012, 16:06
    #37882476
bella_I
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Excel собрать из нескольких отдельных диапазонов один несвязный
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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в Excel собрать из нескольких отдельных диапазонов один несвязный / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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