Создать и назвать диаграмму с помощью VBA - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь создать макрос, который вставит простую гистограмму в Excel.У меня есть следующий код, который был результатом записи, пока я делал это вручную:

ActiveSheet.Shapes.AddChart2(286, xl3DColumnClustered).Select
    ActiveChart.SetSourceData Source:=Range("Dashboard!$T$8:$U$9")
    ActiveSheet.Shapes("Chart 2").IncrementLeft 2222.25
    ActiveSheet.Shapes("Chart 2").IncrementTop 25.5
    ActiveSheet.Shapes("Chart 2").ScaleWidth 0.5541666667, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Chart 2").ScaleHeight 1.5416666667, msoFalse, _
        msoScaleFromTopLeft
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = 0
    Application.CommandBars("Format Object").Visible = False

Это, очевидно, создает, перемещает, изменяет размеры и устанавливает ось и т. Д.

Однако, когда я запускаюВ макросе я получаю сообщение об ошибке «Элемент с указанным именем не найден»

Ясно, что он ищет «Диаграмму 2», однако;

a) Я не знаюпочему он называется «Диаграмма 2» (есть ли способ установить это при создании диаграммы?), и б) я не могу понять, как впоследствии установить имя объекта.

Я пытался использовать:

ActiveChart.Name = "Chart Name"

Но затем я получаю сообщение об ошибке «Указанное измерение недопустимо для текущего типа диаграммы»

Что я делаю неправильно?

1 Ответ

1 голос
/ 19 марта 2019

Диаграмма 2 означает, что создана вторая диаграмма, по крайней мере с момента последнего открытия вашей рабочей книги.Вы должны использовать ActiveChart.Parent.Name = "Chart Name"

Редактировать: я обычно устанавливаю диаграмму в переменную, подобную этой:

Dim Grafico As ChartObject
Set Grafico = ws.ChartObjects.Add(Left:=ws.Cells(13, 9).Left, _
    Width:=Ancho.Width / 2, _
    Top:=ws.Cells(13, 9).Top, _
    Height:=RangoGraficos.Height)
Grafico.Parent.Name = "Chart Object"

Переменные на испанском, но я думаю, что это легко понять

...