所以我正在尝试使用日期数组,但遇到了很多麻烦。我已经尝试了我能想到的所有东西,但无法让它发挥作用。
本质上,问题是我无法获得插入到要接受的数组中的日期(特别是月份)。所有信息都存储在适当的变量中,但没有分配给数组索引。
'grabs the date
If k = 0 Then
intDay = Cells(intRowNum + 2, 2).Value
arrDateTime(intArrayIndex) = DateValue(strMonth & " " & intDay & ", " & intYear)
ElseIf j = 0 Then
arrDateTime(intArrayIndex) = DateAdd("d", 1, arrDateTime(intArrayIndex - 1))
ElseIf j = 1 Then
arrDateTime(intArrayIndex) = arrDateTime(intArrayIndex - 1)
End If
strTemp = "" 'resets temporary variable
'grabs the time
If j = 0 Then
arrDateTime(intArrayIndex) = arrDateTime(intArrayIndex) + TimeValue(Cells(intRowNum + 3, 1).Value)
Else
arrDateTime(intArrayIndex) = arrDateTime(intArrayIndex) + TimeValue(Cells(intRowNum + intMaxRows + 3, 1).Value)
End If
我究竟做错了什么?将日期/时间分配给日期数组的正确方法是什么?
更新 1
结果发现信息被错误地检索,不得不使用 MonthName(Month(arrDateTime(intArrayIndex))) 而不仅仅是 MonthName。然而,另一个月的信息显示,这曾经是并且仍然是一个谜。所以上面的大部分问题现在已经解决了,但是 DateAdd() 部分不能正常工作。
另请注意,我已将 elseif 语句简化为一个 else 语句
arrDateTime(intArrayIndex) = DateAdd("d", j-1, arrDateTime(intArrayIndex - 1))
尽管 DateAdd 部分的代码都不能正常工作。我已经测试了 arrDateTime(2) = arrDateTime(1) 并且工作正常,所以显然数组索引有问题,因为每当我使用它时,它都会返回一个很远的日期。