Страница: 1 |
Страница: 1 |
Вопрос: Построение графиков с помощью Record
Добавлено: 30.04.09 12:12
Автор вопроса: Алексей
День добрый!
Проблема следующая: записываю макрос для создания графика типа "колонна-линия". Далее запускаю его и выдается ошибка следующего содержания:
Run-time error '1004'
Method 'Axes' of object '_Chart' failed
при выводе ошибки (debug) указывает на строку
.Axes(xlCategory,xlSecondary).HasTitle=False
убираю ее и тогда выдает ошибку на
.Axes(xlValue,xlSecondary).HasTitle=False
убираю и ее и тогда выдает ошибку еще ниже на
ActiveChart.Axes(xlCategory,xlSecondary).CategoryType=xlCategoryScale
убрав ее, без проблем выдает график,но уже типа "колонна-колонна"
как справиться с данным багом? помогите, плиииииз
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #1
Добавлено: 30.04.09 13:48
Вероятно макрос и график создавались в одной из версий Excel, а ты запускаешь это в другой версии. Возможны различия в объектных моделях программ Microsoft Office разных версий и очень существенные - похоже, что это как раз твой случай. "Method 'Axes' of object '_Chart' failed" означает только одно: у объекта Chart нет метода, который бы назывался Axes. Вероятно, тебе придется переделывать графики для работы в нужной тебе версии Excel.
Номер ответа: 2
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #2
Добавлено: 30.04.09 14:26
Да в том-то и дело, что создается это все безобразие в одной версии. Мало того: вчера полдня потратил на исправление данного бага, плюнул,выключил комп и лег спать. С утра включил комп, запустил - и о,май гад! все работает!! подумал я... но запустив макрос повторно, увидел ту же ошибку... она меня сведет с ума - ведь пока не исправлю - не успокоюсь о_О
Номер ответа: 3
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #3
Добавлено: 30.04.09 15:38
Дай весь код чтоли
Номер ответа: 4
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #4
Добавлено: 30.04.09 15:46
Private Sub OptionButton4_Click()
Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line - Column"
ActiveChart.SetSourceData Source:=Sheets("dec".Range("A2:A54,BH2:BI54", _
PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Values = "=dec!R2C61:R54C61"
ActiveChart.SeriesCollection(1).Name = _
"=""Общая сумма выплаченных компенсаций клиентам"""
ActiveChart.SeriesCollection(2).Values = "=dec!R2C60:R54C60"
ActiveChart.SeriesCollection(2).Name = _
"=""Количество клиентов, которым была выплачена компенсация"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:= _
"Розн_Компенсации_Декабрь"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Компенсации клиентам"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Рубли"
.Axes(xlCategory, xlSecondary).HasTitle = False
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = _
"Количество клиентов"
End With
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlCategory, xlSecondary) = False
.HasAxis(xlValue, xlPrimary) = True
.HasAxis(xlValue, xlSecondary) = True
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
ActiveChart.Axes(xlCategory, xlSecondary).CategoryType = xlCategoryScale
ActiveChart.HasDataTable = False
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = True
With Selection.TickLabels.Font
.Name = "Arial"
.FontStyle = "Обычный"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
With Selection.TickLabels
.Alignment = xlCenter
.Offset = 100
.ReadingOrder = xlContext
.Orientation = xlUpward
End With
ActiveChart.Legend.Select
Selection.Left = 481
Selection.Top = 38
Selection.Width = 115
Selection.Left = 611
Selection.Height = 262
ActiveChart.PlotArea.Select
Selection.Width = 581
Selection.Width = 549
ActiveChart.ChartArea.Select
End Sub
Номер ответа: 5
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #5
Добавлено: 30.04.09 15:49
по А: наименование субъекта, в котором происходит подсчет (текст)
по BH: сумма
по BI: количество таких "сумм"
Номер ответа: 6
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #6
Добавлено: 30.04.09 15:50
грубо:
сумма количество
Москва 10000 5
Номер ответа: 7
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #7
Добавлено: 04.05.09 10:56
проблема так и не решилась и до сих пор мне непонятно, почему у объекта Chart нет метода, который бы назывался Axes, ведь объектная модель одинаковая и если, говоря простым языком, сам Excel может построить данную зависимость и отобразить график, то соответственно макрос, который по сути является лишь сигналом/командой для выполнения построения графика функции, также должен уметь это делать...
любые другие графики, как ни странно, отображаются нормально, косяк только в этом.
ладно, будем строить другую зависимость, но если у кого-то будут мысли/идеи/предложения - буду благодарен
Номер ответа: 8
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #8
Добавлено: 04.05.09 12:03
кстати,замечен такой факт: если создаю в userform несколько кнопок и присваиваю каждой из них модуль, код в котором строит графики, то выделяется следующий парадокс: если сначала нажать кнопку с построеним "глючного" графика, то выдается ошибка; если же сначала нажать на кнопку с построением любого другого графика, а потом "глючного", то строятся все графики без проблем
Номер ответа: 9
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #9
Добавлено: 04.05.09 15:22
слушай залей куда нить твою книгу, а то неудобно
Номер ответа: 10
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #10
Добавлено: 04.05.09 15:56
примитивно выглядит так, как закачал:
http://file.oboz.ua/download.php?fid=21063
пароль: 12345
Номер ответа: 11
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #11
Добавлено: 04.05.09 16:11
да,забыл: excel 2003
Номер ответа: 12
Автор ответа:
Arvitaly
ICQ: 301746136
Вопросов: 28
Ответов: 549
Web-сайт:
Профиль | | #12
Добавлено: 04.05.09 16:28
Метод Axes есть, просто неправильно введены параметры (второй)
А как это выглядит?
Номер ответа: 13
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #13
Добавлено: 04.05.09 16:44
выглядит вот так
http://file.oboz.ua/download.php?fid=21064
Номер ответа: 14
Автор ответа:
Алексей
Вопросов: 1
Ответов: 10
Профиль | | #14
Добавлено: 04.05.09 16:46
в одной системе координат изображается гистограмма и обычный график