如何使用来自许多工作表的数据创建单个图表

时间:2012-10-16 20:27:14

标签: excel-vba vba excel

我正在尝试将包含多个工作表中数据的图表绘制到同一图表中。因此,每张工作表的数据都是我图表中的单独系列。以下是2张样本代码:

Name1 = ActiveWorkbook.Worksheets(1).Name
Name2 = ActiveWorkbook.Worksheets(2).Name

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.ChartArea.Select

ActiveChart.SeriesCollection.NewSeries

ActiveChart.SetSourceData Source:=Range("'" & Name1 & "'!$C$" & nStart & ":$D$" & nLast & "")
ActiveChart.SeriesCollection(1).Name = "=" & Name1 & "!A1"
ActiveChart.SeriesCollection(1).XValues = "='" & Name1 & "'!$C$" & nStart & ":$C$" & nLast & ""
ActiveChart.SeriesCollection(1).Values = "='" & Name1 & "'!$E$" & nStart & ":$E$" & nLast & ""

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SetSourceData Source:=Range("'" & Name2 & "'!$C$" & nStart & ":$D$" & nLast & "")
ActiveChart.SeriesCollection(2).XValues = "='" & Name2 & "'!$C$" & nStart & ":$C$" & nLast & ""
ActiveChart.SeriesCollection(2).Values = "='" & Name2 & "'!$E$" & nStart & ":$E$" & nLast & ""
ActiveChart.SeriesCollection(2).Name = "=" & Name2 & "!A1"

但我得到一个"无效的参数"第二系列集合中的错误。请帮我解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在第二个系列集ActiveChart.SetSourceData Source:=Range("'" & Name2 & "'!$C$" & nStart & ":$D$" & nLast & "")中注释掉代码行,然后查看它是否有效。

由于您专门定义了该系列的值,因此您甚至不需要第一行ActiveChart.SetSourceData代码。

您还可以添加这些代码行以为图形命名,因为在添加第二个系列时它会被覆盖;

ActiveChart.SetElement (msoElementChartTitleAboveChart)
Selection.Caption = "NameOfChart"

希望有所帮助