Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #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-сайт: okazani.ru
 Профиль | | #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-сайт: okazani.ru
 Профиль | | #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-сайт: okazani.ru
 Профиль | | #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
в одной системе координат изображается гистограмма и обычный график

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам