我正在尝试使用Outlook模板创建Outlook电子邮件。
在Set obApp = Outlook.Application
行上,我收到错误消息:
错误:13类型不匹配
我似乎正在使用与此主题有关的其他语法。
我也尝试了Set obApp = CreateObject("Outlook.Applciation")
,但结果相同。
我在工具->引用中选中了OLE自动化,Microsoft Outlook 16.0对象库,Microsoft Office 16.0库和Microsoft Excel 16.0对象库以及Visual Basic for Applications。
Sub CreateEmailfromTemplate()
Dim obApp As Application
Dim NewMail As Outlook.MailItem
Set obApp = Outlook.Application 'THE PROBLEM IS HERE
Set NewMail = obApp.CreateItemFromTemplate("F:\Folder1\Automation\EmailTemplates\TEST TEST.oft")
NewMail.Display
End Sub
答案 0 :(得分:2)
您有两种选择:
为了使用早期绑定,您需要设置对以下内容的引用:
Microsoft Outlook ##.# Object Library
这可以在VBE>工具>参考中完成。由于您已经声明了变量,因此我认为这是您首选的方法。
使用此方法的代码中的问题是,在语句Dim xxxx As Application
中,As Application
引用了 Excel的对象模型。您需要指定要使用Outlook。
Sub CreateEmailfromTemplate()
Dim obApp As New Outlook.Application '<-- Notice Change
Dim NewMail As Outlook.MailItem
Set NewMail = obApp.CreateItemFromTemplate("F:\Folder1\Automation\EmailTemplates\TEST TEST.oft")
NewMail.Display
End Sub
您无需在此方法中设置引用,但是Outlook的类型和常量在编译时将不可用。编译器将在运行时获取它们。
Sub CreateEmailfromTemplate()
Dim obApp As Object
Dim NewMail As Object
Set obApp = CreateObject("Outlook.Application")
Set NewMail = obApp.CreateItemFromTemplate("F:\Folder1\Automation\EmailTemplates\TEST TEST.oft")
NewMail.Display
End Sub
在此方法中,注意Outlook的对象被声明为类型Object
。