【发布时间】:2022-01-02 04:51:26
【问题描述】:
我有下面的代码来循环访问 Outlook 约会中的受邀参与者并删除所有参与者,但它没有按预期工作。删除一个与会者后,它将跳过下一个与会者并删除之后的与会者。例如。如果与会者一被删除,下面的代码将跳过与会者 2 并删除与会者 3,依此类推。我希望拥有它,因此它会删除所有与会者,而不仅仅是其他所有与会者。有什么建议吗?
For Each Item In RestrictedItems
If Item.Class = olAppointment Then
For Each Attendee In Item.Recipients
Attendee.Delete
End If
Next Attendee
【问题讨论】:
-
使用 for 循环并向后循环?
-
您不能使用 for Each 循环来删除集合中的项目。这样做的原因是您正在更改您用作控制变量的集合,因此控制变量的内部计数器与集合的实际成员不同步,这意味着某些项目不会被删除,因为他们由于删除了其他项目,集合中的位置已更改。这就是为什么您必须使用 sight for 循环并向后计数的原因,以便已删除的项目不会影响仍待处理的项目的位置。
-
抱歉,我该怎么做呢?如果有帮助,我可以发布我的完整代码吗?