VBA:多次迭代后下标超出范围

VBA:多次迭代后下标超出范围,vba,excel,Vba,Excel,我正在使用excel 2010。我正在尝试查找第一个带有空“A1”单元格的工作表。这个工作簿非常大,在第203次迭代之前,所有工作都没有错误,在迭代中我得到“错误9:下标超出范围”。我不明白为什么会这样。我的代码应该在工作表220上找到第一个空的“A1”单元格,所以奇怪的是,我在工作表203上得到了错误。工作表203中的“A1”单元格与之前工作表中的“A1”单元格没有区别。我的部分代码附在下面 Public Sub CommandButton1_Click() Dim firstCell As

我正在使用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
子forEachWSinWB() 将ws设置为工作表 将wb设置为工作簿 把计数器调暗一样长

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
或转到子forEachWSinWB() 将ws设置为工作表 将wb设置为工作簿 把计数器调暗一样长

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

或者转到

使用
工作表
对象,让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

使用
工作表
对象,让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

如果我想忽略前5张工作表呢?用我的代码(不起作用),我可以设置I=6。我可以用这个代码吗?如果我想忽略前5个工作表呢?用我的代码(不起作用),我可以设置I=6。我能用这段代码做到吗?和上面的问题一样,如果我想忽略前5个工作表怎么办?用我的代码(不起作用),我可以设置I=6。我可以用这个密码吗?是的,没问题。我编辑了一份工作表的索引检查表,非常感谢。和上面的问题一样,如果我想忽略前5张工作表怎么办?用我的代码(不起作用),我可以设置I=6。我可以用这个密码吗?是的,没问题。我还编辑了一个工作表索引检查,非常感谢。