我撰寫了一個宏,將開始/停止日期的范圍擴大 5 分鐘,并為每組日期分配一個“活動”編號。例如,我有一個日期表:
| 開始 | 停止 |
|---|---|
| 2015 年 8 月 19 日 17:20 | 15 年 8 月 20 日 2:20 |
| 2016 年 12 月 13 日 7:30 | 2016 年 12 月 14 日 18:00 |
| 20 年 5 月 29 日 22:00 | 5/31/20 1:00 |
我想以 5 分鐘的增量將每個日期范圍擴展為一個表格(即 8/19/15 17:20、8/19/15 17:25),然后為每個集合分配一個標簽(2015 年 8 月 16 日之間的所有內容) 17:20 - 2015 年 8 月 20 日 2:20 將被視為活動 1)。我撰寫了以下按計劃作業的代碼,但是當宏到達 23:55 時,隨后的日期是前一天的午夜:
| 日期 |
|---|
| 2015 年 8 月 19 日 23:50 |
| 2015 年 8 月 19 日 23:55 |
| 2015 年 8 月 19 日 00:00 |
| 2015 年 8 月 20 日 00:05 |
關于如何防止前一天出現在這里的任何想法?
謝謝
代碼:
Sub campaignpull()
Dim ROWID As Integer
Dim LASTROW As Long
Dim rng As Range
Dim StartRng As Range
Dim EndRng As Range
ThisWorkbook.Sheets("Sheet1").Activate
LASTROW = ActiveSheet.UsedRange.Rows.Count
For ROWID = 2 To LASTROW
Set StartRng = Cells(ROWID, 1)
Set EndRng = Cells(ROWID, 2)
For i = StartRng To EndRng Step 1 / 24 / 12
ThisWorkbook.Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = i
ThisWorkbook.Sheets("Sheet2").Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = ROWID - 1
Next
Next ROWID
End Sub
uj5u.com熱心網友回復:
似乎 Excel 以與 VBA 不同的方式處理日期/時間。我找到的解決方案是使用 Excel 公式創建 5 分鐘增量。請看下面的代碼:
Sub CampaignPull()
Dim rowCount As Integer
rowCount = Evaluate("COUNTA(Sheet1!A:A)")
Dim i As Integer
Dim j As Integer
j = 2
Dim startDateTime As Date
Dim endDateTime As Date
For i = 2 To rowCount
startDateTime = Sheets("Sheet1").Range("A" & i)
endDateTime = Sheets("Sheet1").Range("B" & i)
Sheets("Sheet2").Range("A" & j) = startDateTime
Do
j = j 1
Sheets("Sheet2").Range("A" & j).Formula = "=A" & (j - 1) & " 1/12/24"
Loop While Sheets("Sheet2").Range("A" & j) <= endDateTime
Next i
End Sub
uj5u.com熱心網友回復:
我的看法,雖然之前的回答很好。隨心所欲地處理列:
Sub campaignpull()
Dim rowId As Integer
Dim lastRow As Long
Dim rng As Range
Dim currentTime As Date
Dim endTime As Date
Dim i As Date
Dim rw As Integer
Sheet1.Activate
lastRow = ActiveSheet.UsedRange.Rows.Count
For rowId = 2 To lastRow
currentTime = Sheet1.Cells(rowId, 1).Value
endTime = Sheet1.Cells(rowId, 2).Value
rw = 1
Do Until currentTime > endTime
currentTime = currentTime 1 / 24 / 12
Sheet2.Cells(rw, rowId) = currentTime
rw = rw 1
Loop
Next rowId
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/414308.html
標籤:
上一篇:P5.JS-每隔幾秒執行一次
