【问题标题】:Creating chart with horizontal line用水平线创建图表
【发布时间】:2017-09-21 20:34:21
【问题描述】:

我有一张工作表,其中有一个数据透视表。从数据透视表中,我正在生成图表。我的工作表分别由两个数据透视表和两个图表组成。

从数据透视表中,从我的列字段“目标”中,我想在值上画一条水平线。有人可以帮助我,我如何提及范围并为我的列字段目标绘制一条水平线。我通过网络搜索,找不到提及数据透视表的范围。

此外,我的源数据行中出现自动化错误

.SetSourceData pt

下面是我用来从数据透视表生成图表的代码

Sub chart()
Dim cht As Chart
Dim stable As PivotTable
Dim pt, sh

      If ActiveSheet.PivotTables.count = 0 Then Exit Sub
         Set stable = ActiveSheet.PivotTables(2)
         Set pt = stable.TableRange1
         Set sh = ActiveSheet.ChartObjects.Add(Left:=250, _
         Width:=400, Top:=20, Height:=250)
         sh.Select
         Set cht = ActiveChart       
              With cht
               .SetSourceData pt
               .ChartType = xlColumnStacked
              End With
         cht.FullSeriesCollection(1).Name = "Average of Red"
         cht.SeriesCollection(1).HasDataLabels = True
         cht.SeriesCollection(2).HasDataLabels = True
         cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
         cht.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
         cht.HasTitle = True
         cht.ChartTitle.Text = " Result 2017"
End Sub

【问题讨论】:

  • 您能否提供您的工作表的屏幕打印以及您希望它的外观?
  • 当然我现在就提供
  • @Zac 我已经添加了截图供您参考。
  • 试试这个:extendoffice.com/documents/excel/…。如果这没有帮助,还有这个:exceldashboardtemplates.com/…
  • 我刚试过这个,它对我有用。我认为不同之处在于您是从数据透视表驱动图表,而我使用范围来创建图表(给出相同的结果)。如果您尝试使用您的范围来创建图表,那么您可以在我最初评论中的第一个链接之后轻松地在图表中创建一条“平均”线

标签: vba excel


【解决方案1】:

参考:https://support.office.com/en-gb/article/Create-a-PivotChart-c1b1e057-6990-4c38-b52b-8255538e7b1c
请按以下步骤操作:

  • 单击数据透视表上的任意位置以在功能区中显示数据透视表菜单项
  • 单击功能区中的Analyze 选项卡
  • 现在点击PivotChart
  • 这将打开Insert Chart 窗口。选择您想要的图表类型,然后单击OK 按钮。这将创建图表
  • 在图表中,单击要显示为线的系列并右键单击它
  • 从显示的菜单中选择Change Series Chart Type... 选项。这将打开Change Chart Type 窗口
  • 系列列在窗口的右下方。对于每个系列,都有一个下拉框。点击您要更改的系列旁边的下拉菜单,然后选择Line 图表类型
  • 点击OK按钮关闭Change Chart Type窗口

这将在您的数据透视图中为您提供一条线

【讨论】:

    【解决方案2】:

    解决方法如下:

    .SetSourceData Source:=pt
    .ChartType = xlColumnStacked
    

    := 在您指定传递的参数名称时使用。在这种情况下,参数的名称是 Source

    【讨论】:

    • 谢谢。我的自动化错误已解决。但是如何添加水平线#
    • 它也可以是静态的。因为我的目标是每次 8%
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2015-06-23
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多