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