2016-12-26 102 views
0

的代碼是下面運行正常,直到2天回去,但突然開始給錯誤運行時錯誤的,無效的過程調用或參數

運行時錯誤的,無效的過程調用或參數

我在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對象在您的代碼中,但我更喜歡定義類型ChartObjectObject並將其設置爲我的圖表,然後我可以通過VBA修改它的所有屬性。

要建立一個圖表對象使用:

Set ChtObj = Worksheets("Sheet1").ChartObjects.Add(Left:=100, Top:=100, Width:=100, Height:=100)

建議:遠離ActiveSheetActiveChart和使用引用的對象了,(其他城市 「工作表Sheet1」 你的表的名字)。

設置了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 
相關問題