列A、D、およびEは日付と時刻です。以下のコードでエラーが表示されます。変数が定義されていません
列Aの日付が開始日と終了日の間にある回数を調べようとしています。
列Aは、開始日と終了日が何千にもなる間、30〜60日の間で変化します。
つの質問:
- は、なぜ私は以下のコードで定義されていないエラー変数を受けるのですか?
- セルA2が日付と時刻24Feb17 12H00の場合、セルA3にはどのような数式を入れて25Feb17 12H00などと読み替えるのですか?
コード:あなたはあまりにもi
とj
を宣言する必要があるので、あなたは、すべての変数を宣言する
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を設定していて、変数iとjが定義されていないためです。しかし、次のjの文の前に 'next i'ステートメントなどのコードに関する問題があります – FunThomas