Excel VBA 图表 - 如何设置行和列标签
Excel VBA charts - how to set row and column labels
我正在尝试按照本教程进行操作:
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 自动假定列和行 headers 在数据源中,而在我的工作表中它们不在。如何让 Excel 从不同范围检索 headers?
例如,在我的工作表中,数据包含在 C3:AO41 范围内,但水平顶部 headers 在 C1:AO1 中,垂直左侧 headers 在在 A3:A41.
如果你的系列名称和X轴标签不是数据集的column/row headers,那么你不能使用SetSourceData
方法。相反,您需要单独添加每个系列并添加指定 X 轴(类别)标签的命令。
对于每个系列,按照
的方式做一些事情
ActiveChart.FullSeriesCollection(1).Name = "=Sheet5!$A"
ActiveChart.FullSeriesCollection(1).Values = "=Sheet5!$C:$F"
X 轴类别类似于
ActiveChart.FullSeriesCollection(1).XValues = "=Sheet5!$C:$F"
修改以适合您的 object 名称并根据需要用 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
我正在尝试按照本教程进行操作:
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 自动假定列和行 headers 在数据源中,而在我的工作表中它们不在。如何让 Excel 从不同范围检索 headers?
例如,在我的工作表中,数据包含在 C3:AO41 范围内,但水平顶部 headers 在 C1:AO1 中,垂直左侧 headers 在在 A3:A41.
如果你的系列名称和X轴标签不是数据集的column/row headers,那么你不能使用SetSourceData
方法。相反,您需要单独添加每个系列并添加指定 X 轴(类别)标签的命令。
对于每个系列,按照
的方式做一些事情ActiveChart.FullSeriesCollection(1).Name = "=Sheet5!$A"
ActiveChart.FullSeriesCollection(1).Values = "=Sheet5!$C:$F"
X 轴类别类似于
ActiveChart.FullSeriesCollection(1).XValues = "=Sheet5!$C:$F"
修改以适合您的 object 名称并根据需要用 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