Excel 使用vba更新图表,向系列中添加年份

Excel 使用vba更新图表,向系列中添加年份,excel,vba,Excel,Vba,我正在尝试使用excel VBA更新图表类型4。 我可以刷新数据源区域,但我很难在一系列中显示年份字段。以1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月为水平数据 我的数据分为3列 Year Month Total 2018 Jan 0 2018 Feb 2067 2018 Mar 2507 2018 Apr 3319 2018 May 12536 2018 Jun 2108 2018 Jul 1060 2018

我正在尝试使用excel VBA更新图表类型4。 我可以刷新数据源区域,但我很难在一系列中显示年份字段。以1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月为水平数据

我的数据分为3列

Year    Month   Total
2018    Jan 0
2018    Feb 2067
2018    Mar 2507
2018    Apr 3319
2018    May 12536
2018    Jun 2108
2018    Jul 1060
2018    Aug 2440
2018    Sep 1423
2018    Oct 939
2018    Nov 2443
2018    Dec 891
2019    Jan 1678
2019    Feb 1715
2019    Mar 1426
2019    Apr 3271
2019    May 1267
2019    Jun 1188
2019    Jul 3603
2019    Aug 1664
每月更新一次。我希望能够有一个水平轴上的一月到十二月的图表。还有没有办法在这个系列中再增加一年,如果我们到2020年,还有一年需要增加。 目前,我的代码显示为2018年1月、2018年2月等,然后是2019年1月、2019年2月等,该系列具有系列1和系列年。不是2018年和2019年

我在K列手动输入了2018年和2019年,看看我的代码是否适用于该系列

Option Explicit

Sub UpdateChart()

Dim i As Integer
Dim lw As Long
Dim lrow, daterow As Long

lrow = Sheet8.Cells(Rows.Count, 1).End(xlUp).Row
daterow = Sheet8.Cells(Rows.Count, 11).End(xlUp).Row
Sheet8.ChartObjects("Chart1").Activate

ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Sheet8.Range("A2:C" & lrow)
With ActiveChart.SeriesCollection.NewSeries
  .Name = "Year"
  .Values = Sheet8.Range("K5:K" & daterow).Value2
End With

ActiveChart.Refresh

End Sub

创建一个“助手”列,并将月份和年份合并到Excel可识别的日期字段中。诸如
=DATEVALUE(B2&“”&A2)
之类的公式可以工作(请确保包含公式的单元格的格式设置为显示日期!)。然后使用新的日期列作为图表中的轴。我将如何调整VBA代码以使用此方法?我不清楚您的图表是什么样子,以及您到底想要实现什么。您想要一个显示X轴上12个月的折线图,以及每年数据的不同系列吗?您是使用VBA创建图表还是手动创建图表?创建“帮助器”列,并将月份和年份合并到Excel可识别的日期字段中。诸如
=DATEVALUE(B2&“”&A2)
之类的公式可以工作(请确保包含公式的单元格的格式设置为显示日期!)。然后使用新的日期列作为图表中的轴。我将如何调整VBA代码以使用此方法?我不清楚您的图表是什么样子,以及您到底想要实现什么。您想要一个显示X轴上12个月的折线图,以及每年数据的不同系列吗?您是使用VBA创建图表还是手动创建图表?