0

假设我在单元格 A1 中有一个开始日期,在单元格 A2 中有一个结束日期。我将如何生成从 A1 开始的日期列表,然后跳过 2 周(不是 14 天,而是 2 个实际周)。但是,这些周必须恰好在每个月的 15 日和 1 日。这是一个例子:

Cell A1 -> January 1, 2013
Cell A2 -> April 30, 2013

该宏将生成以下日期:

January 1, 2013
January 15, 2013
February 1, 2013
February 15, 2013
March 1, 2013
March 15, 2013
April 1, 2013
April 15, 2013

非常感谢您的所有帮助!

4

2 回答 2

2

这应该这样做:

Sub GenerateDates()

Dim FirstDate As Date
Dim LastDate As Date
Dim NextDate As Date

FirstDate = Range("A1").Value
LastDate = Range("a2").Value

NextDate = FirstDate
Range("B1").Select

Do Until NextDate >= LastDate

    ActiveCell.Value = NextDate
    ActiveCell.Offset(1, 0).Select

    If Day(NextDate) = 1 Then
        NextDate = DateAdd("d", NextDate, 14)
    Else
        NextDate = DateAdd("d", NextDate, 20)
        NextDate = DateSerial(Year(NextDate), Month(NextDate), 1)
    End If

Loop

结束子

于 2013-05-12T18:36:02.597 回答
1

少量的手工工作,但可以作为单元格公式完成。如果b1 =a1那么b2是:

=if(day(b1)=1, date(year(b1),month(b1),15), date(year(b1),month(b1)+1,1))

现在手动工作,向下拖动此单元格公式,保持相对单元格引用,直到达到所需的日期。然后根据需要粘贴值。

于 2013-05-13T20:12:12.133 回答