2013-11-22 57 views
0

我已動態變化的表在Excel和需要氣泡圖來自動進行,即使基於從桌上數據變化時。關鍵是,在表中的每一行代表一個系列是氣泡圖英寸Excel VBA中更新氣泡圖動態系列

Series A 5 10 5% 
Series B 4 8 3% 
. 
. 

我知道如何使用的動態範圍,而不VBA的泡沫,但因爲我需要從我的研究創建/更新動態系列我需要使用VBA。我寫了下面的代碼,但我得到錯誤信息,即使我已經檢查50次,我有正確的名稱

我需要的VBA代碼,參考上Sheet11現有圖表,該圖表不能被發現根據表更新它(添加/編輯)。

我的代碼:

Public Sub CreateMultiSeriesBubbleChart() 
    Dim bubbleChart As ChartObject 
    Set bubbleChart = Sheet11.ChartObjects("Chart 13") ''verified i have chart 13 on sheet 11 

    Dim r As Integer 
    For r = 2 To 201 
    With bubbleChart.Chart.SeriesCollection.NewSeries 
     .Name = "=" & Sheet11.Cells(r, 1).Address(External:=True) 
     .XValues = Sheet11.Cells(r, 2).Address(External:=True) 
     .Values = Sheet11.Cells(r, 3).Address(External:=True) 
     .BubbleSizes = Sheet11.Cells(r, 4).Address(External:=True) 
    End With 
    Next 

    bubbleChart.Chart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) 
    bubbleChart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "=" & Sheet11.Cells(1, 2).Address(External:=True) 

    bubbleChart.Chart.SetElement (msoElementPrimaryValueAxisTitleRotated) 
    bubbleChart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "=" & Sheet11.Cells(1, 3).Address(External:=True) 
    ''bubbleChart.Chart.Axes(xlValue).MinimumScaleIsAuto = True 
    ''bubbleChart.Chart.Axes(xlValue).MaximumScaleIsAuto = True 
    ''bubbleChart.Chart.SetElement (msoElementPrimaryCategoryGridLinesMajor) 
End Sub 

不幸的是,這個代碼提供了集BubbleChart中線上說,「應用程序定義或對象定義錯誤」的錯誤。我可以使用非常相似的代碼來創建一個新的圖表,所以我的身影,其餘工作正常,但我不能引用現有的圖表這正是我需要能夠做到

回答

1

您需要的方式來改變你的引用您的工作表。使用Sheets("Sheet11")代替Sheet11

試試這個:

Set bubbleChart = Sheets("Sheet11").ChartObjects("Chart 13") 

請注意,您可以調用的名稱或索引這樣。例如:

Sheets("MySheetName").select 

Sheets(11).select