簡體   English   中英

EXCEL VBA-有2個日期的While循環

[英]EXCEL VBA - Do While loop with 2 dates

在Excel中用開始日期和當前日期之間的日期填充行。 人口是每周一次,以下是我的職能。 它可以正常工作直到不停止,直到出現溢出錯誤,然后繼續無限運行,因此我認為CurrentDate無法正常工作。

使用的2個日期是StartDate = 04/1/2016CurrentDate = 12/07/2017 StartDate = 04/1/2016

任何幫助或建議,將不勝感激。

Public Function PopulateStartOfWeekDates()

    Dim wsCRC As Worksheet
    Set wsCRC = Worksheets("CRC")

    Dim StartDate As Date
    Dim CurrentDate As Date
    StartDate = FirstMondayOfYear()
    CurrentDate = Date

    Dim WeekOffset As Integer
    Dim i As Integer
    i = 12
    WeekOffset = 0

    Debug.Print StartDate
    Debug.Print CurrentDate

    Do While StartDate < CurrentDate        
        wsCRC.Cells(5, i) = StartDate + WeekOffset
        wsCRC.Cells(5, i).EntireColumn.AutoFit
        i = i + 1
        WeekOffset = WeekOffset + 7                    
    Loop

End Function

如果您決定需要保持StartDate的值(例如,在代碼的后面使用),則可以將循環替換為:

i = 0
Do While StartDate + i * 7 < CurrentDate
    wsCRC.Cells(5, i + 12) = StartDate + i * 7
    wsCRC.Cells(5, i + 12).EntireColumn.AutoFit
    i = i + 1
Loop

自己看完之后,我意識到我沒有增加開始日期,因此循環是無限的。 感謝@Nathan_Sav在注釋中也指出了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM