Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2014, 17:21   #1
Maryy
Новичок
Джуниор
 
Регистрация: 28.07.2014
Сообщений: 1
По умолчанию Ошибка при присвоении названия заголовку диаграммы

Добрый день, подскажите в чем может быть проблема.
Время от времени вылетает ошибка "Объект не имеет заголовка" при попытке присвоить заголовку диаграммы название , при чем, если тут же продолжить выполнение программы (нажать F5), то программа продолжает свое исполнение и ошибка не возникает.
Данный участок кода находится в функции, которая может вызываться из 2х других функций, так вот при вызове из одной функции такая ошибка не возникает, а при вызове из другой появляется. Хотя никакой связи между данными функциями нет. Так же нет никаких условий или чего то подобного перед данной строчкой кода, в которых было бы возможно, чтобы диаграмма становилась не активной. Грубо говоря при любом раскладе происходит 1.добавление 2.очищение диаграммы 3.выбор типа кривой и 4.присвоение имени заголовку диаграммы и ее осям
Код:
 Sheets(sheetName).Select
    Dim numbGr As Integer 'кол-во кривых на диаграмме
    numbGr = 0
        
    ActiveSheet.Shapes.AddChart.Select
    diagramName = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 2)
    
    'удаление всех кривых с диаграммы
    For Each currentCollection In ActiveChart.SeriesCollection
        currentCollection.Delete
    Next currentCollection
    
    ActiveChart.ChartType = xlLineMarkers
    'Подписи на диаграмме
    ActiveChart.ChartWizard Title:=" " & Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 1).Value & " (" & Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 2).Value & ")", CategoryTitle:="Месяц", ValueTitle:=Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 2).Value
   ....
Соответственно, ошибка возникает на последней строчке.

Если на данной строчке поставить breakpoint и продолжить выполнение программы, ошибка не возникает, так же если перед данной строчкой вставить функцию задержки
Код:
Application.Wait Time:=Now + TimeSerial(0, 0, 1)
, ошибка так же не появится, но это конечно довольно сомнительное решение, хотелось бы все таки разобраться в чем дело и чем может быть вызвана такая проблема
Maryy вне форума Ответить с цитированием
Старый 04.08.2014, 14:09   #2
vefer
Форумчанин
 
Регистрация: 11.10.2010
Сообщений: 134
По умолчанию

Можно попробовать сначала выбрать данные для диаграммы, а потом присвоить название, может в этом проблема. На пустой диаграмме название не отображается.
vefer вне форума Ответить с цитированием
Старый 05.08.2014, 08:36   #3
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Попробуйте
Код:
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Caption = " " & Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 1).Value & " (" & Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 2).Value & ")", CategoryTitle:="Месяц", ValueTitle:=Sheets(sheetName).Cells(20 * (numbMod - 1) + 1, 2).Value
AndVGri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Ошибка при присвоении символу следующей по порядку буквы (нужно для перевода в другую систему счисления c основанием > 10) Vladislavv Помощь студентам 1 30.07.2014 13:16
Ошибка при присвоении обработичка событий для динамического компонента: Delphi 7 albert1984 Помощь студентам 2 10.09.2013 00:42
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов Lanx Помощь студентам 0 06.04.2011 20:24
при присвоении ADOQuery.SQL.Text значения DBLookupComboBox.KeyValue возникает ошибка namazi74 БД в Delphi 1 10.04.2010 07:20
Ошибка при присвоении tStringList Altera Общие вопросы Delphi 16 24.07.2009 22:08