列A,D和E是日期和時間。使用下面的代碼我收到錯誤變量未定義
我想知道A列中的日期在開始日期和結束日期之間有多少次。
列A可能在30到60天之間變化,而開始和結束日期運行到數千。
兩個問題:
- 我爲什麼會收到錯誤變量與下面的代碼沒有定義?
- 如果單元格A2是日期和時間24Feb17 12H00那麼我會在單元格A3中放入什麼公式以便它讀取25Feb17 12H00等等?
代碼:
Option Explicit
Sub DaysCount()
Dim endRow As Long
Dim LastRow As Long
Dim ICount As Long
Dim Day() As Variant
Dim StartDate() As Variant
Dim EndDate() As Variant
ICount = 0
With ThisWorkbook.Worksheets("sheet1")
LastRow = .Range("A" & .Rows.count).End(xlUp).Row
endRow = .Range("D" & .Rows.count).End(xlUp).Row
Day = Sheet1.Range("A2:A" & LastRow)
StartDate = Sheet1.Range("D2:D" & endRow)
EndDate = Sheet1.Range("E2:E" & endRow)
For i = LBound(StartDate) To UBound(StartDate)
For J = LBound(Day) To UBound(Day)
If Day(J, 1) >= StartDate(i, 1) And Day(J, 1) <= EndDate(i, 1) Then
ICount = ICount + 1
Else
End If
Sheet1.Range("B" & J).Value = ICount
Next i
ICount = 0
Next J
End With
End Sub
'選項Explicit'在代碼的頂部意味着你需要聲明代碼中使用例如所有變量'Dim i as integer'沒有被包含,也沒有變量'j' – MiguelH
哪一行創建'ERROR'? – harun24hr
因爲你有Option Explicit set,變量i和j沒有定義。但是代碼有更多的問題,例如在下一個j語句之前使用'next i'語句 – FunThomas