删除工作表时出现自动化错

时间:2017-08-25 14:11:22

标签: excel vba

根据向用户显示的表单,我正在处理一个小的sub来删除特定的工作表。用户选择他想要保留在列表框中的工作表。然后代码循环遍历列表框中的所有工作表,并删除未选中的工作表。 但是,当运行表单并单击按钮时,我收到了自动化错误:

  

执行错误' -2147417848(80010108):   自动化错误   调用的对象已断开连接

Private Sub Button_Export_Click()
    Application.DisplayAlerts = False
    For i = 0 To PSV_Case_List.listCount - 1
        If Not PSV_Case_List.Selected(i) Then
            Worksheets(PSV_Case_List.List(i)).Delete

        End If
    Next i
    Application.DisplayAlerts = True
End Sub

按照此消息,Excel冻结,我必须终止该过程。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

当您执行这样的删除操作时,您应该始终以最高索引开始并向下工作,因为一旦删除了工作表(0),工作表(1)就会变为工作表(0),依此类推。所以试试这个:

For i = PSV_Case_List.listCount - 1 to 0 step -1