所以我试图使用一个日期数组但是遇到了很多麻烦。我已经尝试了我能想到的一切,但无法让它发挥作用。
基本上问题是,我无法获得我插入数组中的日期(特别是月份)。所有信息都存储在适当的变量中,但不会分配给数组索引。
'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
我做错了什么?将日期/时间分配给日期数组的正确方法是什么?
原来错误地检索信息,不得不使用MonthName(Month(arrDateTime(intArrayIndex)))而不仅仅是MonthName。然而,另外一个月的信息显示哪个过去仍然是一个谜。因此,大部分上述问题现已解决,但DateAdd()部分无法正常工作。
另请注意,我已将elseif语句简化为一个其他语句
arrDateTime(intArrayIndex) = DateAdd("d", j-1, arrDateTime(intArrayIndex - 1))
对于DateAdd部分,这两个代码都没有正常工作。我已经测试了arrDateTime(2)= arrDateTime(1)并且运行正常,所以显然数组索引有问题,因为每当我使用它时它返回一个离开的日期。
答案 0 :(得分:0)
我不知道strMonth
的格式,但如果可能,请使用DateSerial代替:
arrDateTime(intArrayIndex) = DateSerial(intYear, strMonth, intDay)
答案 1 :(得分:0)
如果您的月份值采用名称(“May”)的形式,请使用月份编号(例如“5”)。您可以使用MONTH(“1”和& strMonth)执行此操作。