2016-08-13 374 views
0

我想一起学习本教程: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中。

回答

3

如果您的系列名称和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语句的东西。

0
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