自动连接到 ms excel 并使用 excel vba 检查未读邮件
Automatically connect to ms excel and check for unread emails using excel vba
我正在做一个基于excel-vba的项目。
有2个用户。用户A和用户B
用户 A 有一个 excel 工作簿 table。用户 B 将通过电子邮件发送给
定期文档,到用户 A 的 outlook 帐户。
我的要求是使用宏为用户 A 提供 2 个选项。
选项 1:手动检查是否有来自特定用户的未读邮件
用户。
完成者:
从 excel 工作簿中打开 outlook,然后用户 A 可以手动搜索 outlook 帐户。
我已经使用以下代码成功完成了此操作。
Sub Open_Outlook()
' This Macro Opens Microsoft Outlook
' Runs an executable program
Shell ("OUTLOOK")
End Sub
选项 2:自动检查是否有来自特定用户的未读电子邮件。
完成者:
创建到 Outlook 的连接。
检查是否有未读邮件。
子 ExtractFirstUnreadEmailDetails()
Dim oOutlook As Object
Dim oOlns As Object
Dim oOlInb As Object
'~~> Get Outlook instance
Set oOutlook = GetObject(, "Outlook.Application")
Set oOlns = oOutlook.GetNamespace("MAPI")
Set oOlInb = oOlns.GetDefaultFolder(olFolderInbox)
'~~> Check if there are any actual unread emails
If oOlInb.Items.Restrict("[UnRead] = True").Count = 0 Then
MsgBox "NO Unread Email In Inbox"
Exit Sub
End If
结束子
当我 运行 第二个选项的代码时出现错误。
运行 时间错误 429: Active X 组件无法创建对象。
这是什么意思?
如何更改代码以消除错误并成功 运行?
olFolderInbox 是一个仅限 Outlook 的常量或者将其定义为 VBA 中的常量,如下所示:
Const olFolderInbox = 6
或者在 Set oOlInb 行中将其替换为 6
我正在做一个基于excel-vba的项目。
有2个用户。用户A和用户B
用户 A 有一个 excel 工作簿 table。用户 B 将通过电子邮件发送给 定期文档,到用户 A 的 outlook 帐户。
我的要求是使用宏为用户 A 提供 2 个选项。
选项 1:手动检查是否有来自特定用户的未读邮件 用户。
完成者:
从 excel 工作簿中打开 outlook,然后用户 A 可以手动搜索 outlook 帐户。
我已经使用以下代码成功完成了此操作。
Sub Open_Outlook()
' This Macro Opens Microsoft Outlook
' Runs an executable program
Shell ("OUTLOOK")
End Sub
选项 2:自动检查是否有来自特定用户的未读电子邮件。
完成者:
创建到 Outlook 的连接。
检查是否有未读邮件。
子 ExtractFirstUnreadEmailDetails()
Dim oOutlook As Object
Dim oOlns As Object
Dim oOlInb As Object
'~~> Get Outlook instance
Set oOutlook = GetObject(, "Outlook.Application")
Set oOlns = oOutlook.GetNamespace("MAPI")
Set oOlInb = oOlns.GetDefaultFolder(olFolderInbox)
'~~> Check if there are any actual unread emails
If oOlInb.Items.Restrict("[UnRead] = True").Count = 0 Then
MsgBox "NO Unread Email In Inbox"
Exit Sub
End If
结束子
当我 运行 第二个选项的代码时出现错误。
运行 时间错误 429: Active X 组件无法创建对象。
这是什么意思?
如何更改代码以消除错误并成功 运行?
olFolderInbox 是一个仅限 Outlook 的常量或者将其定义为 VBA 中的常量,如下所示:
Const olFolderInbox = 6
或者在 Set oOlInb 行中将其替换为 6