2014-03-05 114 views
0

我正在编写写星期一的日期的代码。例如,对于今天的一周,我会写14年3月3日,并在下面的单元格在下周一日期...vba循环直到找到特定值

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 

现在我的问题是如何我会写一个代码,它将当前的星期一日期和循环直到12/29/14。 我希望我会在这里得到解决方案。

+0

你想在循环中做什么?只需将每个星期一的日期写到2014年12月29日? – Octavio

+0

如果你只是想获得的值,您不必编写VBA实际上 – sam092

+0

奥克塔维奥:是的......我想要写在每个星期一日期为每周till29th十二月2014 – Vikrantnag

回答

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 

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