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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир 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
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

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


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

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

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


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

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

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

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


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
переменную типа 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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

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


Яндекс: 410016850021169
 
Ответить
Сообщение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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

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


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

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

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