我正在努力获得一个程序,您可以使用Excel VBA回复Outlook中选定的电子邮件。不幸的是,我找不到任何有效的代码。
Option Explicit
Sub ReplyMSG()
Dim olItem As Outlook.MailItem
Dim olReply As MailItem ' Reply
Dim olRecip As Recipient ' Add Recipient
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
For Each olItem In myOlSel
Set olReply = olItem.ReplyAll
Set olRecip = olReply.Recipients.Add("Email Address Here") ' Recipient Address
olRecip.Type = olCC
olReply.HTMLBody = "Hello, Thank you. " & vbCrLf & olReply.HTMLBody
olReply.Display
'olReply.Send
Next olItem
End Sub
我正在尝试使用此代码,但错误438对象不支持此属性或方法继续出现。希望得到这种自动化的帮助。
答案 0 :(得分:1)
如果您使用Excel VBA编写,则“应用程序”一词适用于Excel。 Excel应用程序没有ActiveExplorer属性。您应该回到Outlook应用程序,我在提供的代码中没有看到,例如设置myOlExp = refToOutlookApplication.ActiveExplorer
看看你上面显示的内容:
Set myOlExp = Application.ActiveExplorer
这意味着Set myOlExp = Excel.Application.ActiveExplorer
,事实是Excel应用程序没有Explorer对象。
所以你需要:Set myOlExp = refToOutlookApplication.ActiveExplorer
您需要明确声明您希望将变量分配给Outlook应用程序的属性 - 在此阶段,我将假设您已在模块中的其他位置创建了引用。
如果没有,那么你需要这样做:
Dim refToOutlookApplication As Object 'Outlook.Application
Set refToOutlookApplication = GetObject(, "Outlook.Application")