只有通过debugging程序时才能正确执行Excelmacros图表创build

所以我有一个与我的Excelmacros压力诱导问题。 当我运行代码来创build一些表数据的图表时,它断言创build第六个系列时出现错误,但是当我在debugging器中单步执行代码时,它将完美运行! 是否有我的方法下面的东西,或者是另一个我不知道的问题。

这里是图表代码:

Sub staffing_Chart() Dim staffChart Set staffChart = ActiveWorkbook.Worksheets("2015 Chart").ChartObjects.Add(Left:=175, Width:=500, Top:=350, Height:=325) With staffChart.Chart .ChartType = xlAreaStacked .HasTitle = True .ChartTitle.Text = "All Geo Int Staffing" .SetSourceData Source:=Range("B5:G30") .FullSeriesCollection(1).Name = "='2015 Chart'!$B$4" .FullSeriesCollection(1).XValues = "='2015 Chart'!$A$5:$A$30" .FullSeriesCollection(2).Name = "='2015 Chart'!$C$4" .FullSeriesCollection(3).Name = "='2015 Chart'!$D$4" .FullSeriesCollection(4).Name = "='2015 Chart'!$E$4" .FullSeriesCollection(5).Name = "='2015 Chart'!$F$4" .FullSeriesCollection(6).Name = "='2015 Chart'!$G$4" .Axes(xlCategory).CategoryType = xlCategoryScale .Axes(xlCategory).CrossesAt = 1 .Axes(xlCategory).Crosses = xlAutomatic .Axes(xlCategory).TickMarkSpacing = 5 .Axes(xlCategory).TickLabelSpacing = 5 .Axes(xlCategory).TickLabels.NumberFormat = "m/d/yyyy" .Axes(xlCategory).TickLabels.NumberFormat = "[$-409]mmm-yy;@" .Axes(xlCategory).TickLabels.NumberFormat = "[$-409]mmm;@" End With End Sub 

这里是表格:

在这里输入图像说明

编辑

在回答你的build议Scott使用你的代码时,我得到这个图表,当我正常运行, 在这里输入图像说明

但是如果我在debugging器中遍历代码,它确实可以正常工作,所以从优化方面来说这是一个很好的build议。

尽pipe如此,我的问题仍然存在。

为什么不在build立这个图表时依靠Excel的内置智能,并将源范围设置为包含列标签和x轴分类标签。

下面的代码对我来说是完美无缺的,无论是完全执行还是逐步完成:

 Sub staffing_Chart() Dim staffChart Set staffChart = ActiveWorkbook.Worksheets("2015 Chart").ChartObjects.Add(Left:=175, Width:=500, Top:=350, Height:=325) With staffChart.Chart .ChartType = xlAreaStacked .HasTitle = True .ChartTitle.Text = "All Geo Int Staffing" .SetSourceData Source:=Range("A4:G30") With .Axes(xlCategory) .CategoryType = xlCategoryScale .CrossesAt = 1 .Crosses = xlAutomatic .TickMarkSpacing = 5 .TickLabelSpacing = 5 .TickLabels.NumberFormat = "[$-409]mmm;@" End With End With End Sub