我正在尝试创建一个代码,该代码将解析Outlook中的“收件箱”文件夹并根据多个条件来组织电子邮件。
如果两个条件都匹配->发送到Folder1如果其中之一不匹配(附件丢失或括号之间没有数字),请发送至存档
条件1运行正常,但是我在添加附件条件2时遇到问题。我收到错误消息,指出“参数不是可选的”,指向objAttachments.Item.Size
这是我当前的代码:
Private Sub olInboxMainItems_ItemAdd(ByVal Item As Object)
On Error Resume Next
Dim SubjectVar1 As String
Dim openPos1 As Integer
Dim closePos1 As Integer
Dim midBit1 As String
Dim objNamespace1 As Outlook.NameSpace
Dim destinationFolder1 As Outlook.MAPIFolder
Dim ArchiveFolder As Outlook.MAPIFolder
Dim objAttachments As Outlook.Attachments
Set objNamespace1 = GetNamespace("MAPI")
Set destinationFolder1 = objNamespace1.Folders("[email protected]").Folders("Inbox").Folders("Folder1")
Set ArchiveFolder = objNamespace1.Folders("[email protected]").Folders("Archive")
Set objAttachments = Item.Attachments
SubjectVar1 = Item.Subject
openPos1 = InStr(SubjectVar1, "(")
closePos1 = InStr(SubjectVar1, ")")
midBit1 = Mid(SubjectVar1, openPos1 + 1, closePos1 - openPos1 - 1)
If midBit1 = "" And objAttachments.Item.Size < 10000 Then
Item.Move ArchiveFolder
'GoTo EndOfScript
Else
'MsgBox (midBit)
Item.Move destinationFolder1
'GoTo EndOfScript
End If
EndOfScript:
Set destinationFolder1 = Nothing
Set objNamespace1 = Nothing
End Sub
[Item.Attachments
是一个集合,因此objAttachments
也是如此。
一个集合可以有零个或多个成员。 objAttachments.Count
是您未检查的成员数。
您需要遍历附件以分别检查其大小和扩展名。签名,徽标等可以算作附件,但我认为您对它们不感兴趣。会有不止一个有趣的附件吗?您是否希望总大小为10,000或任何一个附件超过10,000个字节?
访问大小时,需要指定要检查的附件:objAttachments.Item(Index).Size
。
以上内容应为您提供一些指导,但如有必要,我可以详细解释。