Нужно, чтобы в новой книге появились именованные диапазоны и график строился опираясь на них. Чтобы в формулах рядов были именно именные диапазоны а не просто RANGE Разными способами пробовал. Либо эксель с ошибкой вылетает (перезапустить программу предлагает) Либо - вылетает дебаг, но если нажать продолжить - все работает исправно (через On Error обойти не получилось) Кто сталкивался? Возможно, готовый образец есть у кого-то?
Нужно, чтобы в новой книге появились именованные диапазоны и график строился опираясь на них. Чтобы в формулах рядов были именно именные диапазоны а не просто RANGE Разными способами пробовал. Либо эксель с ошибкой вылетает (перезапустить программу предлагает) Либо - вылетает дебаг, но если нажать продолжить - все работает исправно (через On Error обойти не получилось) Кто сталкивался? Возможно, готовый образец есть у кого-то?excelhelprus
Set Nwb = Workbooks.Add With Nwb.Sheets("Отчет") Set ch = .ChartObjects.Add(Rng.Left, Rng.Top, Rng.Width, Rng.Height) .... End With ... ch.Chart.FullSeriesCollection(2).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
[/vba] Я пока не вижу ни одной причины, по которой это может работать... Может я и не прав (а я мало что смыслю в диаграммах), но мне представляется, что Вы вставляете на пустой лист в сежесозданной книге диаграмму неопределённых (потому что rng вы определили для предыдущей книги) размеров и пытаетесь сделать с ней нечто...
[vba]
Код
Set Nwb = Workbooks.Add With Nwb.Sheets("Отчет") Set ch = .ChartObjects.Add(Rng.Left, Rng.Top, Rng.Width, Rng.Height) .... End With ... ch.Chart.FullSeriesCollection(2).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
[/vba] Я пока не вижу ни одной причины, по которой это может работать... Может я и не прав (а я мало что смыслю в диаграммах), но мне представляется, что Вы вставляете на пустой лист в сежесозданной книге диаграмму неопределённых (потому что rng вы определили для предыдущей книги) размеров и пытаетесь сделать с ней нечто...StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Сообщение отредактировал StoTisteg - Понедельник, 07.03.2016, 19:52
конечно надо искать ошибку , но на ночь глядя и вот так пойдёт,. в строчках где форматирование линии графика, ошибку исправил, но в последней строчке ошибка осталась, не понял вообще зачем она. через заплатку "On Error Resume Next" обошел. посмотри файл.
конечно надо искать ошибку , но на ночь глядя и вот так пойдёт,. в строчках где форматирование линии графика, ошибку исправил, но в последней строчке ошибка осталась, не понял вообще зачем она. через заплатку "On Error Resume Next" обошел. посмотри файл.al-Ex
Ни у кого идей нет? Мне важно, чтобы получилась динамически изменяемая диаграмма в новой книге Возможно, другим способом как то сделать?
Upd 22-00
Проблема частично решена путем присвоения ряду данных диаграммы значения статического диапазона, А затем переделки статического диапазона в динамический. Но теперь следующая проблема - При выполнении кода построчно через редактор - все отлично работает и создается красивая диаграмма с динамическими данными. Но вот если запустить скрипт целиком сначала - Excel вылетает с ошибкой Сигнатура проблемы: Имя события проблемы: BEX64 Имя приложения: EXCEL.EXE Версия приложения: 16.0.4312.1002 Отметка времени приложения: 56544c7e Имя модуля с ошибкой: mso20win32client.dll Версия модуля с ошибкой: 16.0.4312.1000 Отметка времени модуля с ошибкой: 56425ac5 Смещение исключения: 000000000010776a Код исключения: c0000409 Данные исключения: 0000000000000000 Версия ОС: 6.3.9600.2.0.0.256.48 Код языка: 1049
Все обновления офиса последние с официального сайта. Кто сталкивался с подобным?
UPD 22-30 Выяснилось, что даже не построчное выполнение помогает, а просто если приостановить выполнение макроса через Breakpoint до проблемной строки (5 с конца, где присвоение именованных диапазонов идет) и потом продолжить Может как-то можно средствами VBA остановить макрос на Breakpoint, и сразу продолжить?
Ни у кого идей нет? Мне важно, чтобы получилась динамически изменяемая диаграмма в новой книге Возможно, другим способом как то сделать?
Upd 22-00
Проблема частично решена путем присвоения ряду данных диаграммы значения статического диапазона, А затем переделки статического диапазона в динамический. Но теперь следующая проблема - При выполнении кода построчно через редактор - все отлично работает и создается красивая диаграмма с динамическими данными. Но вот если запустить скрипт целиком сначала - Excel вылетает с ошибкой Сигнатура проблемы: Имя события проблемы: BEX64 Имя приложения: EXCEL.EXE Версия приложения: 16.0.4312.1002 Отметка времени приложения: 56544c7e Имя модуля с ошибкой: mso20win32client.dll Версия модуля с ошибкой: 16.0.4312.1000 Отметка времени модуля с ошибкой: 56425ac5 Смещение исключения: 000000000010776a Код исключения: c0000409 Данные исключения: 0000000000000000 Версия ОС: 6.3.9600.2.0.0.256.48 Код языка: 1049
Все обновления офиса последние с официального сайта. Кто сталкивался с подобным?
UPD 22-30 Выяснилось, что даже не построчное выполнение помогает, а просто если приостановить выполнение макроса через Breakpoint до проблемной строки (5 с конца, где присвоение именованных диапазонов идет) и потом продолжить Может как-то можно средствами VBA остановить макрос на Breakpoint, и сразу продолжить?excelhelprus
То есть Вам нужна просто диаграмма, которая будет меняться при добавлении строк в таблицу? Так используйте ListObjects со строкой итогов и стройте диаграмму один раз по Worksheets(1).Range(1).
То есть Вам нужна просто диаграмма, которая будет меняться при добавлении строк в таблицу? Так используйте ListObjects со строкой итогов и стройте диаграмму один раз по Worksheets(1).Range(1).StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Не совсем понял. Не могли бы Вы пример скинуть? Upd Понял, Вы так таблицы назвали. Тут совершенно тоже самое, что и с диапазонами. При первичном присвоении SourceData график просто фиксированный диапазон таблицы берет в качестве данных. А при изменении ряда данных на столбец таблицы - так же вылетает.
+ ко всему выяснилось, что мой код работает только для 16 версии Excel В других версиях, почему то начинает ругаться уже там, где цвет для ряда меняется
У кого то есть примеры построения графиков через VBA Для более ранних версий?
Не совсем понял. Не могли бы Вы пример скинуть? Upd Понял, Вы так таблицы назвали. Тут совершенно тоже самое, что и с диапазонами. При первичном присвоении SourceData график просто фиксированный диапазон таблицы берет в качестве данных. А при изменении ряда данных на столбец таблицы - так же вылетает.
+ ко всему выяснилось, что мой код работает только для 16 версии Excel В других версиях, почему то начинает ругаться уже там, где цвет для ряда меняется
У кого то есть примеры построения графиков через VBA Для более ранних версий?excelhelprus
Сообщение отредактировал excelhelprus - Среда, 09.03.2016, 11:05