【发布时间】:2021-04-26 23:20:32
【问题描述】:
它在我登录系统的第一次工作,但如果我要再次运行此代码进行第二次测试,它会给我类型不匹配错误。有人可以帮我解决这个问题吗?
Sub Saveattachment()
Application.DisplayAlerts = False
Dim ATMT As Outlook.Attachment
Dim OMAIL As Outlook.MailItem
Dim FOL As Outlook.Folder
Dim ONS As Outlook.Namespace
Dim OLOOK As Outlook.Application
Dim var As Date
Dim count As Long
count = 0
Dim name As String
Dim temp As Variant
Set OLOOK = New Outlook.Application
Set ONS = Outlook.GetNamespace("MAPI")
Set FOL = ONS.Folders("IM_DMBI").Folders("inbox")
Set OMAIL = OLOOK.CreateItem(olMailItem)
msgbox "Please remove old downloads, If already remove please ingore and press Ok to proceed", vbInformation
For Each OMAIL In FOL.items
For Each ATMAT In OMAIL.Attachments
var = Format(OMAIL.ReceivedTime, "MM/DD/YY")
name = Left(OMAIL.Subject, 3)
If name = "304" And var = Date And Err.Number = 13 Then
count = count + 1
ATMAT.SaveAsFile Sheet1.Cells(1, 1) & Application.PathSeparator & ATMAT.filename
End If
If var < Date Then
msgbox "Totlay:-" & count & " Files downloaded for today", vbInformation
Exit Sub
End If
Next
Next
Application.DisplayAlerts = True
End Sub
【问题讨论】:
-
Var是一个String,看起来像一个Date。您将它与实际的Date进行比较 - 所以请改用If CDate(var) < Date Then。 -And var = Date And相同 -
您的屏幕截图显示不同的错误。
-
对于初学者来说,并非收件箱中的每个项目都一定是
MailItem: stackoverflow.com/questions/78924/…