我正在使用多个帐户,并经常代表其他帐户发送邮件。使用“全部回复”时,我会将副本发送到我发送的帐户。
为了防止这种情况,我在newItem_Open中有以下代码 - sub:
Dim i As Long
For i = 1 To newItem.Recipients.Count
If newItem.Recipients(i).Name = newItem.SentOnBehalfOfName Then newItem.Recipients.Remove i
Next i
如果SendOnBehalfOf-recipient不是最后一个收件人,则在最后一个收件人上收到错误,因为“Count”仍然在原始号码上,但实际上收件人已经少了一个。
我怎么能处理这个问题,我想我必须重置Count,但是怎么办?
由于 MAX
答案 0 :(得分:0)
由于我无法真正重现该场景,我想快速解决方法就像这样
Dim i As Long
Dim currentTotal As long
currentTotal = newItem.Recipients.Count
For i = 1 To newItem.Recipients.Count
If (i <= currentTotal) then
If newItem.Recipients(i).Name = newItem.SentOnBehalfOfName Then
newItem.Recipients.Remove i
currentTotal = currentTotal - 1
End If
'Exit the subroutine if i > total no. of recipients at the moment
Else
Exit Sub
End If
Next i
答案 1 :(得分:0)
删除或移动时向后计数。
索引不断变化,因此您可以跳过项目。 (与For Each循环相同。)
For i = newItem.Recipients.Count to 1 step - 1
If newItem.Recipients(i).Name = newItem.SentOnBehalfOfName Then
newItem.Recipients.Remove i
End If
Next i