【发布时间】:2020-06-26 15:13:07
【问题描述】:
我想将电子邮件从一个现有文件夹移动到一个或多个子文件夹。
简单示例:一封来自 John Doe 的电子邮件。将其移动到名为 Doe, John(可能不存在)的文件夹下的 MMYY 子文件夹(可能不存在)。如果电子邮件被标记为高重要性,请将电子邮件副本放在名为“HighImportance”的第二个子文件夹中。最后,如果电子邮件被 SQL 查询识别为 HighVolumeEmailer,则移动到名为“HighVolumeEmailer”的第三个子文件夹。
VBA 将电子邮件移动到 MMYY 文件夹,但它可能会将同一电子邮件的副本保存到其他两个文件夹。一共三个。
这是我的代码不起作用:
Set objDestFolder = objSourceFolder.folders(sSenderName)
If objDestFolder Is Nothing Then
Set objDestFolder = objSourceFolder.folders.Add(sSenderName)
End If
Set objNewFolder = objDestFolder.folders(sMonthandYearOfEMail)
If objNewFolder Is Nothing Then
Set objNewFolder = objDestFolder.folders.Add(sMonthandYearOfEMail)
End If
objVariant.Move objNewFolder
'count the # of items moved
lngMovedItems = lngMovedItems + 1
'''''if marked high importance put copy in high importance folder
If sEMailImportance = "High" Then
'''''Set myCopiedItem = objVariant.Copy
''''Set objDestFolder = objSourceFolder.folders(sSenderName)
Set objHighImportanceFolder = objNamespace.folders(sSenderName).folders(sMonthandYearOfEMail).folders("MarkedHighImportance")
'''''Set objHighImportanceFolder = objDestFolder.folders("MarkedHighImportance")
If objHighImportanceFolder Is Nothing Then
Set objHighImportanceFolder = objNamespace.folders(sSenderName).folders(sMonthandYearOfEMail).Add(sMarkedHighImportance)
End If
objVariant.UnRead = True
Set copy = objVariant.copy
copy.Move.objHighImportanceFolder
objVariant.UnRead = True
End If
''''''Now going to look for high volume calls
sEMailSubject = objVariant.Subject
blnHighVMVolume = False
LookingForThisTelephoneNumberInHighVolume = Mid(sEMailSubject, 24, 10)
g = 0
For g = LBound(vArray, 2) To UBound(vArray, 2)
'This is where the code will determine if the telephone number is in
'the high call volume population
If vArray(0, g) = LookingForThisTelephoneNumberInHighVolume Then
blnHighVMVolume = True
NumberOfHighVolumeVMs = vArray(1, g)
End If
Next g
If blnHighVMVolume = True Then
''''''Set myCopiedItem = objVariant.Copy
Set objHighVolumeFolder = objNamespace.folders(sSenderName).folders(sMonthandYearOfEMail).folders(sHighVolumeCaller)
If objHighVolumeFolder Is Nothing Then
Set objHighVolumeFolder = objNamespace.folders(sSenderName).folders(sMonthandYearOfEMail).Add(sHighVolumeCaller)
End If
objVariant.UnRead = True
Set copy = objVariant.copy
copy.Move.objHighVolumeFolder
objVariant.UnRead = True
End If
【问题讨论】:
-
哪行代码不起作用?运行代码时会发生什么?
-
其他任何可能的错误将 Set copy = objVariant.copy 替换为 Set objcopy = objVariant.copy