创建水平线

时间:2017-09-21 07:50:06

标签: excel vba excel-vba

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

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

另外,我在源行数据中遇到自动化错误

  

.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

This is how I would like to have my chart. But with the title

this is how my second Pivot table look like. And from the column Target I would like to have the horizontal line

2 个答案:

答案 0 :(得分:1)

这是如何解决它:

.SetSourceData Source:=pt
.ChartType = xlColumnStacked
当您指定传递的参数的名称时,将使用

:=。在这种情况下,参数的名称为Source

答案 1 :(得分: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窗口

这会在您的数据透视表中为您提供一行