2016-12-26 3 views
0

код был ниже функционирует должным образом до двух дней назад, но вдруг начала давать ошибкузапуска, недопустимый вызов процедуры или аргумент

ошибку во время выполнения, недопустимый вызов процедуры или аргумент

Я запускаю этот код на excel 2016 (windows7).

В заявлении, которое имеет ошибку, как показано ниже:

With ActiveSheet.ChartObjects.Add(Left:=rgExp.Left, Top:=rgExp.Top, _ 
    Width:=rgExp.Width, Height:=rgExp.Height) 

Может кто любезно предложить, как идти о?

+2

Что такое 'rgExp'? Похоже, это актуально. –

+1

Можете ли вы опубликовать остальную часть своего кода? мы не можем видеть, как вы определили 'rgExp' и как он настроен. –

+0

Вы уверены, что 'ActiveSheet' является листом, который вы так думаете? – Dave

ответ

0

Не уверен, что 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