【发布时间】:2018-07-17 12:11:20
【问题描述】:
我正在尝试将由Time 值组成的系列添加到图表中。 y 轴的格式为Time。我正在使用变量myVal 来保存我想要在数组中重复的值,作为系列绘图值。
我知道Time 存储在Date 数据类型中。我不确定如何正确转换以通过 VBA 将系列添加到图表中。
我尝试通过代码分配系列值和绘图一直导致在 y 轴上围绕 0 绘制一条线,表明我的比例错误。见图表图像上的红线。
图表:
尝试在 myVal 上使用 DateValue("00:07:00") 和 TimeValue("00:07:00") 进行转换,然后进行缩放,因为它们返回 0,所以没有用。
我还看到有 FormatDateTime 函数,带有参数 vbLongTime,但我看不到如何在我的情况下应用它。
我知道我可以直接从工作表中添加系列:
.FullSeriesCollection(2).Values = _
"=ChartDataResponseTimes!$BC$548:$BC$552"
其中$BC$548:$BC$552是范围,如上图所示,包含重复的"00:07:00"。这不是我想使用的方法,因为我想通过代码中的数组分配系列值。
我敢肯定,这很容易做到,但我今天失败得很惨。
谁能解决这个问题?
代码:
Sub AddingSeries()
With ActiveSheet.ChartObjects("hidRTMeanCat1").Chart
.SeriesCollection.NewSeries
.FullSeriesCollection(1).Values = _
"=ChartDataResponseTimes!$B$548:$B$552"
.FullSeriesCollection(1).XValues = _
"=ChartDataResponseTimes!$A$548:$A$552"
.SeriesCollection.NewSeries
Dim myVal As Date '**************************************Problem code***************
myVal = DateValue("00:07:00")
.FullSeriesCollection(2).Values = Array(myVal, myVal)
'**************************************Problem code***************
End With
End Sub
注意:
ChartDataResponseTimes!$A$548:$A$552" 是下面示例中的第一列数据。
ChartDataResponseTimes!$B$548:$B$552 是下面示例中的第二列数据。
数据样本:
| Date | North West |
|--------|------------|
| Aug-17 | 00:10:07 |
| Sep-17 | 00:09:50 |
| Oct-17 | 00:09:29 |
| Nov-17 | 00:09:44 |
| Dec-17 | 00:11:17 |
【问题讨论】:
-
您是否尝试格式化轴?
-
什么意思?轴已格式化为时间。我有一个空白图表,我将系列添加到其中。
标签: excel time charts series vba