使用VBA重新创建Excel图表
我在一张纸上有一些图表,其中已经有一些数据系列。我需要做的是找到一个具有特定名称的图表,然后用另一个系列重新填充它,其中的值来自VBA计算数组,而Xvalues来自工作表的单元格。 虽然它完美地找到了必要的图表,但我在图表上收到了非常奇怪的输出,就好像它是各种系列的组合。下面是我的代码示例:使用VBA重新创建Excel图表,vba,excel,Vba,Excel,我在一张纸上有一些图表,其中已经有一些数据系列。我需要做的是找到一个具有特定名称的图表,然后用另一个系列重新填充它,其中的值来自VBA计算数组,而Xvalues来自工作表的单元格。 虽然它完美地找到了必要的图表,但我在图表上收到了非常奇怪的输出,就好像它是各种系列的组合。下面是我的代码示例: Set sh = ActiveSheet If sh.ChartObjects.Count > 0 Then For i = 1 To sh.ChartObjects.
Set sh = ActiveSheet
If sh.ChartObjects.Count > 0 Then
For i = 1 To sh.ChartObjects.Count
With sh.ChartObjects(i)
If .Chart.HasTitle = True And .Chart.ChartTitle.Text = "Price" Then
.Chart.SeriesCollection(1).Delete
.Chart.ChartTitle.Text = "Price"
.Chart.SeriesCollection.NewSeries
.Chart.SeriesCollection(1).Values = arr1()
.Chart.SeriesCollection(1).XValues = Range("A" & nrow + 1 & ":A" & lastrow)
End If
End With
Next i
End If
你能帮我确定一下有什么问题吗?谢谢 乍一看,许多事情可能是错误的-正确的工作表是否处于活动状态?您将
sh
设置为活动工作表,但如果这是错误的工作表,它从一开始就变成梨形,您正在删除和添加一个系列-是否最好只更新现有系列,以便它保留该系列的所有属性-颜色、间距、标签等,arr1()
在任何地方都没有定义,Range(“a”)&nrow…
正在查看当前活动的工作表-这是正确的工作表吗?。您正在添加“Price”标题,即使该代码仅在图表标题为“Price”时才会运行。您只需按名称引用图表,而不必在每个图表中循环并使用sh.ChartObjects(“MyChartName”)检查标题…
。在XL2010中选择图表,单击布局功能区,图表名称位于属性中。