宏从周日期范围字符串中提取日期,并添加7天以打印下一个日期范围

时间:2014-02-04 06:40:28

标签: date range add visual-studio-macros

我正在编写一个处理带有大量数据的Excel的宏。其中一行包含日期范围,如wkstartdate - wkenddate,我想使用dateadd函数每周打印下一个日期范围(如' 27-01-14 - 02-02-14' 在下面的情况下)但无法这样做。 ' 06-01-14 - 12-01-14' ' 13-01-14 - 19-01-14' ' 20-01-14 - 26-01-14' 我使用下面的摘录失败了:

Range("E" & Lastrow).Select
prwk = Split(ActiveCell.Value, "-")
'curr_wkstart = DateAdd("d", 7, prwk(1)) 'error as maybe prwk(1) isnt correct format
'curr_wkend = DateAdd("d", 7, prwk(2))   'error 
Range("E" & Lastrow + 1).Value = curr_wkstart & curr_wkend  'no result

出于测试目的,我在上面的情况下打印,prwk(1) 20/01/14 ,在diff单元格中添加7天,这给了我 1/21 / 2020 而不是' 27/01/14' 。我也试过使用Cdate函数,但仍然是错误

你能告诉你吗?

1 个答案:

答案 0 :(得分:0)

我认为您在这里要使用的是FormatDateSerial函数。以下是我的观点:

Function GetNextWeek(TheStartWeek)
    a = Split(TheStartWeek, " - ")
    b = Split(a(1), "-")
    c = DateSerial(b(2), b(1), b(0)) + 1
    d = c + 6
    GetNextWeek = Format(c, "dd-mm-yy") & " - " & Format(d, "dd-mm-yy")
End Function

Sub Test()
    Debug.Print GetNextWeek("13-01-14 - 19-01-14") 'Givs you "20-01-14 - 26-01-14"
End Sub

希望这有帮助。