vba的新手,尝试“on error goto”,但是,我不断收到错误“index out of range”。
我只想制作一个组合框,该组合框由包含查询表的工作表的名称填充。
For Each oSheet In ActiveWorkbook.Sheets
On Error GoTo NextSheet:
Set qry = oSheet.ListObjects(1).QueryTable
oCmbBox.AddItem oSheet.Name
NextSheet:
Next oSheet
我不确定问题是否与在循环内嵌套On Error GoTo有关,还是与避免使用循环有关。
最佳答案
问题可能是您还没有从第一个错误中恢复。您不能从错误处理程序中引发错误。您应该添加一个resume语句,类似于以下内容,因此VBA不再认为您位于错误处理程序中:
For Each oSheet In ActiveWorkbook.Sheets
On Error GoTo NextSheet:
Set qry = oSheet.ListObjects(1).QueryTable
oCmbBox.AddItem oSheet.Name
NextSheet:
Resume NextSheet2
NextSheet2:
Next oSheet