excel - 如何打开 .msg 文件?
问题描述
我想打开一个 .msg 文件。
我无法像打开工作簿一样打开 .msg 文件。
Sub OpenMail()
Workbooks("MyBook").Sheets("Sheet1").Activate
Dim MyItem1 As Outlook.MailItem
Dim MyItem2 As Outlook.MailItem
If Range("A1").Value > 0 Then
Set MyItem1.Open = "C:\Users\jeff\OneDrive\Documents\Email #1.msg"
MyItem1.Display
Else If Range("A1").Value < 0 Then
Set MyItem2.Open = "C:\Users\jeff\OneDrive\Documents\Email #2.msg"
MyItem2.Display
Else
MsgBox("No items to open")
End If
End Sub
它给了我
运行时错误 91
对象变量或未设置块变量
我在参考库(在工具下)中连接了 Outlook。
解决方案
您需要先创建 Outlook 对象本身,然后使用它打开邮件。
您将 Mailitem “设置”为新打开的消息:
Public Sub foo()
Dim objOL As Outlook.Application
Set objOL = CreateObject("Outlook.Application")
Dim MyItem1 As Outlook.MailItem
Dim MyItem2 As Outlook.MailItem
Workbooks("MyBook").Sheets("Sheet1").Activate
If Range("A1").Value > 0 Then
Set MyItem1 = objOL.Session.OpenSharedItem("C:\Users\jeff\OneDrive\Documents\Email #1.msg")
MyItem1.Display
ElseIf Range("A1").Value < 0 Then
Set MyItem2 = objOL.Session.OpenSharedItem("C:\Users\jeff\OneDrive\Documents\Email #2.msg")
MyItem2.Display
Else
MsgBox ("No items to open")
End If
set objOL = Nothing
End Sub
另外就像一个注释,ElseIf 语句中没有空格(尽管这可能只是一个复制和粘贴问题)。
希望这可以帮助!
推荐阅读
- bash - 终端标题未在屏幕内设置
- glib - 如何在vala的GType中注册一个新类型?
- python - 排名显示3人
- javascript - 我们定义路由时只需要RouterModule吗?
- swift - 如何使用 Swift 编辑 NSAttributedstring 背景颜色大小和位置
- docker - 在 Docker ENV 指令中写入 PATH 变量的正确方法是什么?
- coq - 在 Coq 中将 `not A` 转换为 `A -> False`
- collections - Java 8 Map 合并 VS 计算,本质区别?
- python - 如何在 pyspark 中并行下载大量 URL?
- regex - 在 bash 中提取 CGI 查询参数值