For-Next Loop使用月末日期作为迭代

Jca*_*arl 2 excel vba loops date

我目前有一个"For Next"循环,它遍历各个年份,我想修改它以循环日期,特别是每月结束.我的年度循环的通用代码如下.显然循环多年是相对容易的,因为你有一个开始年份,这是一个整数,迭代是1.现在我想修改循环迭代虽然各个月末日期.例如,2003年1月31日,2/28/2003,......,2007年12月31日.另请注意,对于每次迭代,我都会创建一个新工作表,其中包含当前迭代的名称作为工作表的名称.同样,这一年相对容易,但使用带有"/"的日期使事情变得复杂.有没有人有任何关于使用月末日期创建循环以及使用日期创建工作表的想法?我有一个日期数组,所以代码可以引用工作表中的数组.表格的名称可以是任何格式.例如,"mm-dd-yyyy".

Sub YearLoop()

    Dim FirstYr As Integer
    Dim LastYr As Integer
    Dim Sheetname As String
    Dim Counter1 As Single

    FirstYr = Sheets("Model").Range("ax15").Value
    LastYr = Sheets("Model").Range("ax16").Value

    Counter1 = 0

    For J = FirstYr To LastYr

        Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = J
        Sheetname = J

      'do stuff
      Counter1 = Counter1+1

    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

小智 7

DateSerial函数,当你给任何一个月零一天生产较上月的结束月日.

dim m as integer
for m = 2 to 13
    debug.print dateserial(2016, m, 0)
next m
Run Code Online (Sandbox Code Playgroud)