Не уверен, что rgExp
объект в вашем коде, но я предпочитаю, чтобы определить Object
Типа ChartObject
и установить его на моем графике, то я могу изменить все его свойства с помощью VBA.
Для настройки на использование объекта диаграммы:
Set ChtObj = Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=100, Height:=100)
Рекомендация: держаться подальше от ActiveSheet
и ActiveChart
и использование ссылочных объектов (изменение «Лист1» на имя вашего листа,).
После установки ChtObj
, вы можете легко изменить его. With ChtObj
- см. Образец кода ниже.
Пример кода с использованием ChartObject
Option Explicit
Sub AddSetupChart()
Dim ChtObj As ChartObject
Dim x As Long, y As Long
' set initial size and position of the chart object, will modify them later in the code
Set ChtObj = Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, _
Width:=100, Height:=100)
' setting some values for the parameters >> just for the example
x = 200
y = 400
With ChtObj
.Left = x ' <-- you can use .Left = rgExp.Left
.Top = y ' <-- you can use .Top= rgExp.Top
' set the source data of the chart object
.Chart.SetSourceData (Worksheets("Sheet1").Range("B3:D5"))
.Chart.ChartType = xlBarStacked ' define the type of the chart
.Chart.HasTitle = True ' add title to the chart
.Chart.ChartTitle.Text = "Chart Test" ' modity the title
' other properties you want to modify
End With
End Sub
Что такое 'rgExp'? Похоже, это актуально. –
Можете ли вы опубликовать остальную часть своего кода? мы не можем видеть, как вы определили 'rgExp' и как он настроен. –
Вы уверены, что 'ActiveSheet' является листом, который вы так думаете? – Dave