所要求的集合成员不存在

   

当试图访问一个不存在的对象时,就会产生“所要求的集合成员不存在”错误。例如,如果活动文档中不包含任何表格,则下列指令可能导致出错。

Sub SelectTable()
    ActiveDocument.Tables(1).Select
End Sub

若要在访问集合成员时避免这种错误,需在访问前确认该成员存在。如果通过索引序号访问该成员,可使用 Count 属性判定该成员是否存在。如果活动文档中包含至少一张表格,则下列示例选定第一张表格。

Sub SelectFirstTable()
    If ActiveDocument.Tables.Count > 0 Then
        ActiveDocument.Tables(1).Select
    Else
        MsgBox "Document doesn't contain a table"
    End If
End Sub

如果通过名称访问集合成员,可使用 For Each...Next 在集合元素中进行循环,以判定该成员是否为集合的一部分。例如,如果名为“acheive”的“自动更正”词条是 AutoCorrectEntries 集合的一员,则下列示例将该词条删除。详细信息,请参阅循环遍历一个集合

Sub DeleteAutoTextEntry()
    Dim aceEntry As AutoCorrectEntry
    For Each aceEntry In AutoCorrect.Entries
        If aceEntry.Name = "acheive" Then aceEntry.Delete
    Next aceEntry
End Sub