Excel VBA图表 – 如何设置行和列标签

我试图按照这个教程:

http://www.homeandlearn.org/vba_charts_sheets.html

这里是我得到的:

Sub MakeChart() Dim ChartSheet1 As Chart Set ChartSheet1 = Charts.Add With ChartSheet1 .SetSourceData Source:=Sheets("clc_hgn_hgn").Range("C3:AO41") End With End Sub 

问题是Excel自动假定列和行标题在数据源中,而在我的工作表中则不是。 如何让Excel从不同的范围检索标题?

例如,在我的工作表中,数据包含在C3:AO41范围内,但水平顶部标题在C1:AO1中,垂直左标题在A3:A41中。

如果您的系列名称和X轴标签不是数据集的列/行标题,则不能使用SetSourceData方法。 相反,您需要逐个添加每个系列,并添加一个指定X轴(类别)标签的命令。

对于每个系列做一些沿线的东西

 ActiveChart.FullSeriesCollection(1).Name = "=Sheet5!$A$3" ActiveChart.FullSeriesCollection(1).Values = "=Sheet5!$C$3:$F$3" 

而对于X轴类别的东西

 ActiveChart.FullSeriesCollection(1).XValues = "=Sheet5!$C$1:$F$1" 

根据需要修改以适应您的对象名称并包装在WITH语句中。

 Sub MakeChart() Dim rData As Range Dim ChartSheet1 As Chart With Sheets("clc_hgn_hgn") Set rData = Union(.Range("A1"), .Range("C1:AO1"), _ .Range("A3:A41"), .Range("C3:AO41")) End With Set ChartSheet1 = Charts.Add With ChartSheet1 .SetSourceData Source:=rData End With End Sub