创建动态Excel图表VBA

时间:2017-01-23 10:28:14

标签: excel vba excel-vba charts

我想创建一个看起来像这样的图表

enter image description here

在我的x轴上我希望我的日期如此2016-01-01 在我的y轴上应该有一个数字,表示该事件在该日期发生了多少,例如4

到目前为止我的数据看起来很好,我正在尝试创建上面的图表:

FailureLogStart
2017-01-09 18:20
2017-01-14 14:23
2017-01-14 15:14
2017-01-15 11:05
2017-01-16 09:36
2017-01-16 10:02
2017-01-16 10:23

这是我可以用来创建我的图表的唯一列,因此Y:轴的值应该是没有时间的日期,x轴是每个日期的出现次数,作为14的例子。拖。

到目前为止我做了什么:

Sub Test()
    Range("Table_Query_from_WatchDog_DB_1[[#All],[FailureLogStart]]").Select
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
    ActiveChart.SetSourceData Source:=Range("'Controll & Data'!$C$18:$C$25")
    ActiveSheet.Shapes("Chart 6").IncrementLeft 518.4782677165
    ActiveSheet.Shapes("Chart 6").IncrementTop -308.4782677165
End Sub

我现在所拥有的是相反的,我希望日期在Y:Axix上,并且出现在X:Axis

(顺便说一下,如何只选择没有时间的日期)

1 个答案:

答案 0 :(得分:1)

正如我在第一篇文章的命令中所述,我将使用数据透视表/图表来显示这些数据:

View of all objects

短日期计算公式为:=ROUNDDOWN([@FailureLogStart],0)

数据透视表配置:

行标签 - >短期日期

值 - >短期计数

来源 - >表1(此处放置表格的名称)

编辑:逐步数据透视表准备:

  1. 准备您的输入 - >将数据格式化为表
  2. Step One

    1. 标记您的表格 - > (功能区)插入 - >数据透视表:

      一个。设置表/范围字段 - >表1(或您的表名)

      湾在底部勾选“现有工作表”并将单元格地址放在要放置轴的位置。

      ℃。完成后,将在工作表中插入空白轴。现在,在右侧面板中将“短日期”拖放到“行标签”和“值”字段。

    2. 点击数据透视 - > (功能区)数据透视表选项 - >数据透视表