Excel VBA更新气泡图动态系列



我在Excel中有一个动态变化的表,即使数据发生变化,也需要一个气泡图自动基于该表。关键是表中的每个ROW都表示气泡图中的一个系列。

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

不幸的是,此代码在Set bubbleChart行中提供了错误,称为"应用程序定义或对象定义错误"。我可以使用非常相似的代码来创建一个新的图表,这样我就可以认为其余的都能正常工作,但我不能引用现有的图表,这是我需要能够进行的原因

您需要更改引用工作表的方式。使用Sheets("Sheet11")而不是Sheet11

试试这个:

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

请注意,您可以通过这种方式调用名称或索引。例如:

Sheets("MySheetName").select

Sheets(11).select

最新更新