【发布时间】:2019-10-24 22:19:21
【问题描述】:
这是我的第一篇文章。我已经使用 VBA 一个月了,我正在尝试使用基于用户定义范围的日期填充数组。例如,用户将输入:05/01/2001 - 05/21/2001。在那里,我试图用从开始到结束的所有日期填充一个数组,在这个例子中它将是 21 个日期。当我打印出数组时,我只得到奇数天,而不是偶数天。有人能帮忙吗?谢谢!
我使用 DateDiff() 函数来获取开始日期和结束日期之间的天数,以确定我必须包含在数组中的日期数。
temp_csv_file_count 是数组中的值的个数,input_start_date 和 input_end_date 是字符串,忽略状态,和别的东西有关。
temp_csv_file_count = DateDiff("d", input_start_date, input_end_date)
temp_csv_file_count = temp_csv_file_count + 1
Dim temp_date() As String
ReDim temp_date(0 To temp_csv_file_count) As String
Dim i As Integer
For i = 0 To temp_csv_file_count
temp_date(i) = DateAdd("d", i, input_start_date)
i = i + 1
Next i
msg = "File Count: " & temp_csv_file_count & ", State: " & temp_state
MsgBox msg
Dim array_contents As String
Dim j As Integer
For j = 0 To temp_csv_file_count
array_contents = array_contents + temp_date(j) + vbNewLine
Next j
MsgBox "the values of my dynamic array are: " & vbNewLine & array_contents
实际: 2001 年 5 月 1 日, 2001 年 5 月 3 日, 2001 年 5 月 5 日, 2001 年 5 月 7 日, 2001 年 5 月 9 日, 2001 年 5 月 11 日, 2001 年 5 月 13 日, 2001 年 5 月 15 日, 2001 年 5 月 17 日, 2001 年 5 月 19 日, 2001 年 5 月 21 日
【问题讨论】:
-
不要在循环内增加
i。删除i = i + 1。