【发布时间】:2015-08-20 23:10:34
【问题描述】:
我正在尝试使用 VBA 创建/修改带有日期 x 轴的 Excel 折线图,并使用数组而不是范围分配 Series.Xvalues:
Sub test()
Dim c As Chart: Set c = ActiveChart
With c.SeriesCollection(1)
.XValues = Array(42228, 42229, 42235, 42277, 42338, 42613)
.Values = Array(1, 2, 3, 4, 5, 6)
End With
End Sub
问题是当我运行 .resulting .XValues 的类型是 Variant/String 而不是 Variant/Double 时,图表显示的 x 轴好像是文本轴而不是日期轴(即点沿 x 轴均匀分布):
但是,如果我保存文件,关闭它然后重新打开它,它会神奇地显示为日期轴,其中点根据它们的真实距离沿 x 轴间隔:
如果我在重新打开后检查 Series.XValues 对象,则数组元素已转换为 Variant/Double。我尝试在重新打开之前手动强制它们,但这会导致 Excel 崩溃。实际上,即使我只是复制图表,也足以让它正确显示,所以 Excel 以某种方式“知道”它是一个日期轴,但只是没有显示它。我将不得不使用它作为解决方案(即,每当我更改图表时复制并删除旧的),但是它非常笨重,我很想弄清楚这里发生了什么。我找到了这个http://www.ozgrid.com/forum/showthread.php?t=66504,但他似乎没有同样的问题。我正在使用 Excel 2010。
【问题讨论】: