vba - 声明为变体的变量生成运行时错误 438 - 对象不支持 Outlook 的此属性或方法
问题描述
我有以下代码用于从 Outlook 导入电子邮件。
收到“outlookmail.receivedtime”行错误。
运行时错误 438 - 对象不支持此属性或方法
Sub getDataFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox)
i = 1
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= Range("From_Date").Value Then
Range("Email_Subejct").Offset(i, 0) = OutlookMail.Subject
Range("Email_Subejct").Offset(i, 0).Columns.AutoFit
Range("Email_Subejct").Offset(i, 0).VerticalAlignment = xlTop
Range("Email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("Email_Date").Offset(i, 0).Columns.AutoFit
Range("Email_Date").Offset(i, 0).VerticalAlignment = xlTop
Range("Email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
Range("Email_Sender").Offset(i, 0).Columns.AutoFit
Range("Email_Sender").Offset(i, 0).VerticalAlignment = xlTop
Range("Email_Body").Offset(i, 0).Value = OutlookMail.Body
Range("Email_Body").Offset(i, 0).Columns.AutoFit
Range("Email_Body").Offset(i, 0).VerticalAlignment = xlTop
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
解决方案
正如@Domenic 提到的,检查你是否真的有一个MailItem
对象,而不是ReportItem
or MeetingItem
。
要检查它是否为MailItem
,请使用Class
属性 -OlObjectClass.olMail
消息为 43 ( )。TypeName
方法比较贵。
If OutlookMail.Class = 43 Then
推荐阅读
- sql - 在 SQL Server 中连接不同服务器和不同数据库的两个表的最佳方法
- django - 在 Django 管理员中添加用户的电子邮件时出现问题
- firebase - flutter web: 没有创建 Firebase App '[DEFAULT]' - 在 FlutterFire 中调用 Firebase.initializeApp()
- python - 在使用 Pandas 的条件下将一列 csv 文件转录为另一个 csv
- node.js - 将 React 应用程序部署到 Heroku 时出现问题 - 即使 package.json 在那里也找不到
- python - 每次迭代使用不同的变量多次运行 python 脚本
- sql - 在 postgresql 中使用 jsonb 结构
- json - 将所有属性集收集到一个样式表中并包含在 principal.xsl
- flutter - 如何实现对来自 API Flutter 的数据的 if 语句
- reactjs - 如何在 Android 和 IOS 上移动之前在浏览器中测试具有离子反应的 sqlite 电容器