此问题在此处已有答案:
Treating Item As MailItem(1个答案)
Return mailitem property from item in inbox: Run time error '438': object doesn't support this property or method"(1个答案)
Returning mailitem property of item in inbox: Error 438 object doesn't support this property or method(2个答案)
19天前关闭
如何解决运行时错误'438':Object doesn't support this property或方法错误,发生在下面的vba代码的“If olMail.SenderEmailAddress =“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“Then”行
Sub MaildenDosyaKopyala()
Dim olApp As Object
Dim olNamespace As Object
Dim olFolder As Object
Dim olMail As Object
Dim olAttachment As Object
Dim DesktopPath As String
Dim FilePath As String
Dim FileName As String
' Outlook uygulamasını başlat
Set olApp = CreateObject("Outlook.Application")
Set olNamespace = olApp.GetNamespace("MAPI")
' Gelen Kutusu'nu aç
Set olFolder = olNamespace.GetDefaultFolder(6) ' 6, gelen kutusunu temsil eder. Diğer klasörler için numaraları değiştirin.
' Masaüstü yolunu al
DesktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
FileName = "aaa.xlsx"
' Gelen mailleri kontrol et
For Each olMail In olFolder.Items
If olMail.SenderEmailAddress = "[email protected]" Then
For Each olAttachment In olMail.Attachments
If olAttachment.FileName = FileName Then
FilePath = DesktopPath & "\" & FileName
olAttachment.SaveAsFile FilePath
Exit For
End If
Next olAttachment
End If
Next olMail
Set olAttachment = Nothing
Set olMail = Nothing
Set olFolder = Nothing
Set olNamespace = Nothing
Set olApp = Nothing
End Sub
字符串
找不到任何解决办法
1条答案
按热度按时间m2xkgtsf1#
您的收件箱可以包含
MailItem
以外的项目,例如不公开SenderEmailAddress
属性的ReportItem
或MeetingRequestItem
。首先检查您是否有邮件:
字符串
或者,更好的方法是,不要遍历文件夹中的所有项目(可能包含数千个项目),让消息存储来完成繁重的工作:
型