【发布时间】:2012-12-13 03:30:49
【问题描述】:
我有一个用于工作簿的 excel VBA。如何结束工作表上的循环?我不确定该怎么做。这是代码。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim dtDate As Date
Dim intHours As Long
Dim ws As Worksheet
intHours = 11
dtDate = InputBox("Date", , Date)
For Each ws In ThisWorkbook.Worksheets
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
我需要在最后一个工作表(即工作表 6)之后结束循环。
【问题讨论】:
-
循环将在最后一个工作表处结束,但您没有正确使用它们。你想在这里做什么?代码有不止一个问题......
-
“For Each ws in ThisWorkbook.worksheets / Next ws”不是在最后一个工作表之后停止吗?
-
如果您需要在最后一个工作表之前退出,那么您可以使用
Exit For -
@JohnBustos 我希望在工作簿打开时出现日期提示。这行得通...唯一的问题是它会在我更改工作表时不断提示我...我只希望它在工作簿打开时提示一次...您还看到什么其他问题?
-
@TimWilliams 我会在代码的哪一部分应用它?