创建使用多个工作表中的数据的Excel图表

时间:2011-02-16 13:53:48

标签: excel charts ms-office

考虑以下情况:

  • 我有一张Excel工作簿,里面有4张。
  • 每张纸都代表一年的四分之一。
  • 每张纸包含2列:
    • 日期
    • 收入

我现在想要为全年的每日收入创建一个折线图 X轴应从1月1日(第一张纸的第一列的第一行)开始,到12月31日结束(第四张纸的第一列的最后一行)。
应该有一条线在Y轴上绘制该年度的每日销售额。

2 个答案:

答案 0 :(得分:1)

我认为最直接的做法是在工作簿中添加第五个工作表,引用其他4个工作表中的单元格。然后根据第五张表格中的数据创建图表。

另外,我认为使用XY散点图可以获得更好的效果,如果使用折线图,X轴是预定义的,但在您的情况下,您希望X轴是日期。

答案 1 :(得分:1)

这是一个让您开始自动添加图表的子程序

Sub zx()
    Dim wb As Workbook
    Dim sh As Worksheet
    Dim Chrt As Chart
    Dim Srs As Series

    Set wb = ActiveWorkbook
    Set Chrt = wb.Charts.Add(After:=wb.Worksheets(wb.Worksheets.Count))
    Chrt.ChartType = xlXYScatterLines
    Chrt.SeriesCollection(1).Delete
    Chrt.Name = "Annual Trend"

    Set Srs = Chrt.SeriesCollection.NewSeries
    Srs.Name = "Q1"
    Set sh = wb.Sheets("Quarter1")
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address
    Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address

    Set Srs = Chrt.SeriesCollection.NewSeries
    Srs.Name = "Q2"
    Set sh = wb.Sheets("Quarter2")
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address
    Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address

    Set Srs = Chrt.SeriesCollection.NewSeries
    Srs.Name = "Q3"
    Set sh = wb.Sheets("Quarter3")
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address
    Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address

    Set Srs = Chrt.SeriesCollection.NewSeries
    Srs.Name = "Q4"
    Set sh = wb.Sheets("Quarter4")
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address
    Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address
End Sub