そのため、日付配列を使用しようとしていますが、多くの問題に遭遇しました。考えられることはすべて試しましたが、うまくいきません。
基本的に問題は、配列に挿入した日付 (特に月) を取得できないことです。すべての情報は適切な変数に格納されますが、配列インデックスには割り当てられません。
'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 だけでなく MonthName(Month(arrDateTime(intArrayIndex))) を使用する必要がありました。しかし、他の月の情報は、どれが今も謎であるかを示していました. したがって、上記の問題はほとんど解決されましたが、DateAdd() 部分が正しく機能していません。
また、elseif ステートメントを 1 つの else ステートメントに単純化したことに注意してください。
arrDateTime(intArrayIndex) = DateAdd("d", j-1, arrDateTime(intArrayIndex - 1))
DateAdd 部分では、どちらのコードも適切に機能しませんでした。私は arrDateTime(2) = arrDateTime(1) をテストし、正常に動作したので、使用するたびにかなり離れた日付を返すため、配列のインデックス付けに問題があるようです。