我正在使用excel 2010.我正在尝试找到第一个带有空“A1”单元格的工作表。这个工作簿非常大,一切都没有错误,直到迭代203,我得到“错误9:下标超出范围”。我不明白为什么会这样。我的代码应该在工作表220上找到第一个空的“A1”单元,因此我在工作表203上得到错误是奇怪的。工作表203中的单元格“A1”与其前面的工作表的“A1”单元格不同。我的部分代码附在下面。
Public Sub CommandButton1_Click()
Dim firstCell As String
Dim i As Integer
i = 1
firstCell = ThisWorkbook.Sheets(i).Cells(1, 1)
Do Until firstCell = "" Or i = 300
i = i + 1
firstCell = ThisWorkbook.Sheets(i).Cells(1, 1)
Loop
end sub
答案 0 :(得分:0)
Sub forEachWSinWB() Dim ws As Worksheet Dim wb As Workbook Dim wsCounter As Long
For Each ws In ThisWorkbook.Worksheets 'amend as appropriate
wsCounter = wsCounter + 1
If wsCounter > 6 Then
Debug.Print ws.Name ' do what you need to here
End If
Next ws
End Sub
或转到https://support.microsoft.com/en-us/help/142126/macro-to-loop-through-all-worksheets-in-a-workbook
答案 1 :(得分:0)
不是使用工作表编号迭代工作表,而是使用Worksheet
对象让VBA为您完成所有艰苦工作
Public Sub CommandButton1_Click()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Index > 5 and ws.Range("A1").Value = vbNullString Then
'do something
Exit For
End If
Next ws
End Sub