Проблема такая.
Есть данные (40 столбцов, 10000 строк), которые могут меняться почти случайным образом. Их надо анализировать сравнивая столбцы друг с другом. Проще всего это делать при помощи диаграммы. Каким образом можно поменять параметры диаграммы (добавить/удалить ряд, обновить), которая была бы на одном листе с данными?
Менять данные в ручную долго. Потому что нельзя предсказать какое количество и какие столбцы надо сравнить. Ряды надо добавлять, удалять сравнивая друг с другом. При анализе одной выборки может понадобитя несколько сотен изменений. Выносить диаграмму на отдельный лист тоже не хотелось бы.
Код который определяет какой столбец надо добавить/удалить и передавал бы эти параметры диаграмме я состряпаю, только не могу позиционироваться на определённой диаграмме (их у меня несколько, на нескольких листах) и впихнуть в неё новые данные. Пробовал через конструктор макросов, толку никакого нет. При попытке запустить такой макрос VBA выдаёт ошибку. Все попытки подкорректировать макрос , тоже без успешные.
Кто сталкивался с этим помогите.
P.S.
Кстати, подобное нашёл на форуме, но... опять ошибка.
forum/topic5408.html
Как изменить параметры диаграммы Excel из VBA.
Модератор: Naeel Maqsudov
- Timofey
- Сообщения: 32
- Зарегистрирован: 28 апр 2006, 11:42
- Откуда: Владивосток
- Контактная информация:
Спасибо Avsha!
Кому надо пользуйтесь:
Worksheets(2).ChartObjects(1).Chart.SetSourceData Sheets("n").Range("AD11:AE2005,M11:M2005"), xlColumns
Подставьте нужные номера листа и диаграммы, или их имена, введите нужный диапазон.
Кому надо пользуйтесь:
Worksheets(2).ChartObjects(1).Chart.SetSourceData Sheets("n").Range("AD11:AE2005,M11:M2005"), xlColumns
Подставьте нужные номера листа и диаграммы, или их имена, введите нужный диапазон.
Timofey,
делал недавно похожую конструкцию для подмены данных в диаграмме
если интересно, посмотрите...
http://avsha.narod.ru/Excel_Chart.rar
диаграмма настроена на статичный определенный диапазон,
а данные в этот диапазон попадают с использованием функции ИНДЕКС() из основного диапазона данных.
делал недавно похожую конструкцию для подмены данных в диаграмме
если интересно, посмотрите...
http://avsha.narod.ru/Excel_Chart.rar
диаграмма настроена на статичный определенный диапазон,
а данные в этот диапазон попадают с использованием функции ИНДЕКС() из основного диапазона данных.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Совет:
Так как чаще всего не хватает знания о том как называются нужные свойства, методы и константы, то удобно делать следующее:
1) В VBA через Tools/References добавьте в проект ссылку на Microsoft Graph XX Object library
2) Нажмите F2 - появится Object Browser
3) Изучите с помощью Object Browser названия свойств и методов - в большинстве случаев название интуитивно понятно
(Большинство, к сожалению, это не 90% а несколько меньше, но этот простой совет позволяет в кратчайшие сроки получить наиболее поллное представление о нужном классе)
Кроме того, такая подгрузка библиотек в некотором роде помогает при редактировании исходного кода.
Объявите переменную, например, не просто Object (или Variant) а конкретно - Graph.Series, напрмиер. И все идентификаторы будут появляться в подстрочнике после использования этой переменной.
Так как чаще всего не хватает знания о том как называются нужные свойства, методы и константы, то удобно делать следующее:
1) В VBA через Tools/References добавьте в проект ссылку на Microsoft Graph XX Object library
2) Нажмите F2 - появится Object Browser
3) Изучите с помощью Object Browser названия свойств и методов - в большинстве случаев название интуитивно понятно
(Большинство, к сожалению, это не 90% а несколько меньше, но этот простой совет позволяет в кратчайшие сроки получить наиболее поллное представление о нужном классе)
Кроме того, такая подгрузка библиотек в некотором роде помогает при редактировании исходного кода.
Объявите переменную, например, не просто Object (или Variant) а конкретно - Graph.Series, напрмиер. И все идентификаторы будут появляться в подстрочнике после использования этой переменной.