创建一个excel vba循环以水平列出,每个垂直日期的开始日期和结束日期之间的日期

问题描述 投票:1回答:1

我有一个开始和结束日期列表Cols J&K此列表是动态的。我需要将两个日期之间的各个日期列为水平连接到每组日期右侧的行(P13)。 Exit Sub代码用于停止行更新并跳转到下一行而不是退出sub。我已经实现了这一行,我使用的代码是:

Dim StartDate As Date
Dim EndDate As Date
Dim NoDays As Integer

If Range("L13") <> "No" Then
    Exit Sub
End If
StartDate = Range("J13").Value
EndDate = Range("K13").Value
NoDays = EndDate - StartDate + 1
Range("P13").Value = StartDate
Range("P13").Resize(NoDays).DataSeries Rowcol:=xlRows, Type:=xlChronological, Date:= _
    xlDay, Step:=1, Stop:=EndDate, Trend:=False

这适用于一套。我不知道如何遍历每个可能多达12,000行的集合。

excel vba for-loop
1个回答
0
投票

不能说我确切地知道你在追求什么,但这将循环到第13行到1000并处理你的代码。

Sub DateThing()
    Dim StartDate As Date
    Dim EndDate As Date
    Dim NoDays As Integer
    Dim i As Long

    For i = 13 To 1000

        If Range("L" & i) = "No" Then

            StartDate = Range("J" & i).Value
            EndDate = Range("K" & i).Value
            NoDays = EndDate - StartDate + 1
            Range("P" & i).Value = StartDate

            Range("P" & i).Resize(NoDays).DataSeries Rowcol:=xlRows, Type:=xlChronological, Date:= xlDay, Step:=1, Stop:=EndDate, Trend:=False

        end if

    Next i



End Sub
© www.soinside.com 2019 - 2024. All rights reserved.