2016-08-13 198 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