0

我正在尝试遵循本教程:

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 中。

4

2 回答 2

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 语句中。

于 2016-08-13T23:15:29.790 回答
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
于 2016-08-19T21:51:46.053 回答