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

Вход

Регистрация

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

 

= Мир MS Excel/Выбрать для диаграммы два несвязанных диапазона ячеек - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбрать для диаграммы два несвязанных диапазона ячеек (Макросы/Sub)
Выбрать для диаграммы два несвязанных диапазона ячеек
BSZ Дата: Пятница, 08.06.2018, 10:46 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть таблица с данными, которая постоянно дополняется. Скрипт, в процессе работы, вычисляет какие именно ячейки должны использоваться для формирования графика. Если график строится на основе смежных ячеек, то все просто. Работает такой код:
[vba]
Код
Sheets("t2").ChartObjects("diag3").Activate
ActiveChart.SetSourceData Source:=Range(Sheets("t1").Cells(12, 1), Sheets("t1").Cells(13, max_col))
[/vba]

А вот если ячейки из несмежных ячеек, то никак не могу придумать, как сделать... пробовал так:
[vba]
Код
Dim multirange, myrange1, myrange2 As Range
myrange1 = Range(Sheets("t1").Cells(12, 1), Sheets("t1").Cells(12, max_col))
myrange2 = Range(Sheets("t1").Cells(15, 1), Sheets("t1").Cells(15, max_col))
multirange = Union(Range(myrange1), Range(myrange2))
Sheets("t2").ChartObjects("diag1").Activate
ActiveChart.SetSourceData Source = myrange1, myrange2
[/vba]
Но возникает ошибка "Object variable or With block variable not set" после первой же строчки
Пробовал выбирать ячейки для графика вручную (с зажатием Ctrl) и смотреть код полученного записанного макроса - там диапазон задается через буквы и все работает. Но с буквами неудобно, т.к. количество столбцов в таблице постоянно меняется и нужно именно с использованием Cells
 
Ответить
СообщениеЕсть таблица с данными, которая постоянно дополняется. Скрипт, в процессе работы, вычисляет какие именно ячейки должны использоваться для формирования графика. Если график строится на основе смежных ячеек, то все просто. Работает такой код:
[vba]
Код
Sheets("t2").ChartObjects("diag3").Activate
ActiveChart.SetSourceData Source:=Range(Sheets("t1").Cells(12, 1), Sheets("t1").Cells(13, max_col))
[/vba]

А вот если ячейки из несмежных ячеек, то никак не могу придумать, как сделать... пробовал так:
[vba]
Код
Dim multirange, myrange1, myrange2 As Range
myrange1 = Range(Sheets("t1").Cells(12, 1), Sheets("t1").Cells(12, max_col))
myrange2 = Range(Sheets("t1").Cells(15, 1), Sheets("t1").Cells(15, max_col))
multirange = Union(Range(myrange1), Range(myrange2))
Sheets("t2").ChartObjects("diag1").Activate
ActiveChart.SetSourceData Source = myrange1, myrange2
[/vba]
Но возникает ошибка "Object variable or With block variable not set" после первой же строчки
Пробовал выбирать ячейки для графика вручную (с зажатием Ctrl) и смотреть код полученного записанного макроса - там диапазон задается через буквы и все работает. Но с буквами неудобно, т.к. количество столбцов в таблице постоянно меняется и нужно именно с использованием Cells

Автор - BSZ
Дата добавления - 08.06.2018 в 10:46
китин Дата: Пятница, 08.06.2018, 10:49 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4885
Репутация: 781 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
файлик бы


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениефайлик бы

Автор - китин
Дата добавления - 08.06.2018 в 10:49
sboy Дата: Пятница, 08.06.2018, 10:53 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1861
Репутация: 535 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
переменную типа Range, задают через конструкцию Set
остальное с файлом-примером
 
Ответить
СообщениеДобрый день.
переменную типа Range, задают через конструкцию Set
остальное с файлом-примером

Автор - sboy
Дата добавления - 08.06.2018 в 10:53
StoTisteg Дата: Пятница, 08.06.2018, 12:58 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 879
Репутация: 73 ±
Замечаний: 0% ±

Excel 2010
переменную типа Range, задают через конструкцию Set

И до кучи перечисление через запятую не относит As ко всему списку. Так что multirange и myrange1 у Вас получились Variant.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
переменную типа Range, задают через конструкцию Set

И до кучи перечисление через запятую не относит As ко всему списку. Так что multirange и myrange1 у Вас получились Variant.

Автор - StoTisteg
Дата добавления - 08.06.2018 в 12:58
BSZ Дата: Пятница, 08.06.2018, 13:42 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
китин, вкладываю файл
Ошибки не возникает уже, но результат не тот, что нужно... диапазон объединяется, а нужно выбрать только две желтые строки для графика
 
Ответить
Сообщениекитин, вкладываю файл
Ошибки не возникает уже, но результат не тот, что нужно... диапазон объединяется, а нужно выбрать только две желтые строки для графика

Автор - BSZ
Дата добавления - 08.06.2018 в 13:42
BSZ Дата: Пятница, 08.06.2018, 13:46 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
файл не добавился, кажется
К сообщению приложен файл: 1797150.xlsm(20.6 Kb)
 
Ответить
Сообщениефайл не добавился, кажется

Автор - BSZ
Дата добавления - 08.06.2018 в 13:46
sboy Дата: Пятница, 08.06.2018, 15:10 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1861
Репутация: 535 ±
Замечаний: 0% ±

Excel 2010
2 на 1 поменять и все работает
К сообщению приложен файл: 7003901.xlsm(20.8 Kb)
 
Ответить
Сообщение2 на 1 поменять и все работает

Автор - sboy
Дата добавления - 08.06.2018 в 15:10
BSZ Дата: Пятница, 08.06.2018, 15:18 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, ндааааа.... прошу прощения, что с такой ерундой обратился. Что самое интересное, я как только не пробовал - изголялся как мог. постоянно вылетали ошибки. А для того, чтобы на форум скинуть, сделал файлик с нуля (рабочий файл слишком тяжеловесный и с кучей другого кода). Делал вариант, который пробовал изначально, но он не получился... вероятно по такой же причине - невнимательности) Спасибо большое :)
 
Ответить
Сообщениеsboy, ндааааа.... прошу прощения, что с такой ерундой обратился. Что самое интересное, я как только не пробовал - изголялся как мог. постоянно вылетали ошибки. А для того, чтобы на форум скинуть, сделал файлик с нуля (рабочий файл слишком тяжеловесный и с кучей другого кода). Делал вариант, который пробовал изначально, но он не получился... вероятно по такой же причине - невнимательности) Спасибо большое :)

Автор - BSZ
Дата добавления - 08.06.2018 в 15:18
sboy Дата: Пятница, 08.06.2018, 15:22 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1861
Репутация: 535 ±
Замечаний: 0% ±

Excel 2010
Да не за что. Такое часто случается) "смотрю в книгу..."
 
Ответить
СообщениеДа не за что. Такое часто случается) "смотрю в книгу..."

Автор - sboy
Дата добавления - 08.06.2018 в 15:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выбрать для диаграммы два несвязанных диапазона ячеек (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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