質問ごとに、ワークシートのインデックスをチェックして6であるかどうかを確認し、6である場合は、forループを終了する必要があります。下記参照。あなたのコメントに関して; これをonworkbookopenメソッドに変更して、ワークブックを開いたときに1回だけ実行する必要があります。
ちなみに、最初のFORループは2番目のFORループの範囲外であるため、範囲を何度も設定し、最初のFORループが終了するまで何もしません。より良い反応を得るために、あなたが何を達成しようとしているのかを全体的に説明する方が良いかもしれません。
Private Sub Workbook_Open()
Dim dtDate As Date
Dim intHours As Long
Dim ws As Worksheet
intHours = 11
For Each ws In ThisWorkbook.Worksheets
'check the index of the worksheet and exit if it is 6
If ws.Index = 6 Then
Exit For
End If
'get the date per sheet
dtDate = InputBox("Date", , Date)
Set SelRange = Range("A6:A366")
Next ws '(**This where I need the loop to stop after the last worksheet**)
For Each b In SelRange.Rows
b.Value = dtDate + TimeSerial(intHours, 0, 0)
b.Value = dtDate + TimeSerial(intHours, intMinutes, 0)
intHours = intHours
intMinutes = intMinutes + 1
If intHours > 24 Then
intHours = intHours - 24
End If
Next
End Sub
これはあなたが達成しようとしていることだと思います。
Private Sub Workbook_Open()
Dim dtDate As Date
Dim intHours As Long
Dim ws As Worksheet
intHours = 11
For Each ws In ThisWorkbook.Worksheets
dtDate = InputBox("Date", , Date)
'check the index of the worksheet and exit if it is 6
If ws.Index = 6 Then
Exit For
End If
Set SelRange = ws.Range("A6:A366")
For Each b In SelRange.Rows
b.Value = dtDate + TimeSerial(intHours, 0, 0)
b.Value = dtDate + TimeSerial(intHours, intMinutes, 0)
intHours = intHours
intMinutes = intMinutes + 1
If intHours > 24 Then
intHours = intHours - 24
End If
Next
Next ws '(**This where I need the loop to stop after the last worksheet**)
End Sub