vba循环直到找到特定值

时间:2014-03-05 08:02:34

标签: excel-vba vba excel

我正在编写写下星期一日期的代码。例如,对于今天的一周,我将写下3/3/14,并在下面的单元格中写下一个星期一...

3/3/14
3/10/14
3/17/14
i will drag it till 12/29/2014. 

我刚刚写了一些循环

sub loop ()
    ActiveCell.FormulaR1C1 = "29-Dec-2014"
    Range("I1").Select
    Range("I1").End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = i + 1

现在我的问题是我将如何编写一个代码,该代码采用当前的星期一日期并循环到2014年12月29日。 我希望我能在这里得到解决方案。

1 个答案:

答案 0 :(得分:0)

虽然正如评论所示,使用VBA可能有点过分,但您可以使用以下宏来自动执行VBA:

Sub ListMondays()
    Dim PrintDate As Date, EndDate As Date
    Dim i As Integer

    PrintDate = Date - Weekday(Date, vbMonday) + 1

    EndDate = DateSerial(2014, 12, 29) '<~~ Define end date!
    i = 0

    Do
        ActiveCell.Offset(i, 0).Value = PrintDate
        PrintDate = PrintDate + 7
        i = i + 1
    Loop Until PrintDate > EndDate
End Sub

这将填充活动单元格中的单元格,并向下填充每个星期一的日期,直到达到定义的结束日期。