错误“下标超出范围”

时间:2018-05-11 08:02:37

标签: excel vba

我想自动删除个人工作簿中存在的所有VBA模块,我正在尝试下面的代码但这显示错误9说“下标超出范围” 请帮我解决这个错误

Sub deletemodule()
    Dim vbCom As Object
    Dim i As Integer
    For i = 2 To 10
        On Error GoTo abc
        Set vbCom = Application.VBE.ActiveVBProject.VBComponents
        vbCom.Remove vbComponent:=vbCom.Item("Module" & i)
    Next
abc:
End Sub

提前致谢

1 个答案:

答案 0 :(得分:0)

此代码删除所有标准版&工作簿中的类模块。
请注意确定会有哪些其他类型 - 图表表格,表格,宏表(?)

模块是一个集合,因此您可以使用For...Each循环逐步执行它们,而不需要事先了解它们的数量或内容。

Public Sub DeleteAllModules()

    Dim vbcom As Object
    Dim vMod As Object

    Set vbcom = Application.VBE.ActiveVBProject.VBComponents

    For Each vMod In vbcom
        Select Case vMod.Type
            Case 1, 2 'Standard & Class modules
                vbcom.Remove vMod
            Case 100 'Sheet & ThisWorkbook modules
                'Do nothing
        End Select
    Next vMod

End Sub