Vba 未为Excel中的AppointmentItem定义用户定义的类型

Vba 未为Excel中的AppointmentItem定义用户定义的类型,vba,ms-office,Vba,Ms Office,我在Excel中将示例复制到VBA中 我的代码如下: Dim olApp As Outlook.Application Set olApp = CreateObject("Outlook.Application") Dim olAppt As Outlook.AppointmentItem Set olAppt = olApp.CreateItem(olAppointmentItem) 我在作为Outlook的Dim olAppt.AppointmentItem行中获得以下错误: “未定义用

我在Excel中将示例复制到VBA中

我的代码如下:

Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")

Dim olAppt As Outlook.AppointmentItem
Set olAppt = olApp.CreateItem(olAppointmentItem)
我在作为Outlook的Dim olAppt.AppointmentItem行中获得以下错误: “未定义用户定义的类型”

这应该如何解决


我使用MS Office 2003。

这篇文章列出了四个必备步骤。它们列在代码块的前面

您可能忘记执行第二步,添加对Outlook对象库的引用

唯一的区别是,在VBA中,菜单项位于
Tools
下,而不是
Project
下。您需要根据其值引用所有常量,因此,当olappointItem=1时:

 Set olAppt = olApp.CreateItem(1)

例如,您可以查找值,也可以使用Outlook的对象浏览器获取值。

该示例使用后期绑定,这通常是一个好主意,因此,如果要分发解决方案,则添加对Outlook库的引用不是必需的,也不可能是一个好主意。@Remou not它不是。它不必要地混合使用了后期绑定(
CreateObject
)和早期绑定(
作为Outlook.Application
)。显然,早期绑定位获胜。是的,您可以通过将所有内容重新定义为
对象来修复它,但这没有意义。你必须安装Outlook才能使用它的对象模型,所以它也不会影响发行版。你是对的,我没有注意。但是,我认为最好使用后期绑定,因为库版本之间存在差异。似乎您误解了问题。问题是“应该如何修复此问题?”我经常看到关于为什么“它在我的电脑上工作,但在我的同事身上不工作”的问题这通常取决于每台电脑上的不同库。解决后期绑定问题很容易。因此,在我看来,应该通过使用后期绑定和常量值来修复它。