2010-09-05 68 views
0

我將示例http://support.microsoft.com/kb/220595複製到Excel中的VBA。未在Excel中爲AppointmentItem定義的用戶定義類型

我的代碼如下:

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

Dim olAppt As Outlook.AppointmentItem 
Set olAppt = olApp.CreateItem(olAppointmentItem) 

我獲得關於線Dim olAppt As Outlook.AppointmentItem以下錯誤:「沒有定義用戶定義的類型」 。

這應該如何解決?

我使用MS Office 2003的

回答

1

有一些文章中上市的4個先決步驟。它們在代碼塊之前列出。

您可能忘了按照第二步,添加對Outlook對象庫的引用。
唯一的區別是,在VBA菜單項是Tools而不是Project

+0

該示例使用後期綁定,這通常是一個好主意,因此添加對Outlook庫的引用不是必需的,如果要分發解決方案,也不是一個好主意。 – Fionnuala 2010-09-05 10:11:29

+0

@Remou並非如此。它使用了不必要的後期綁定('CreateObject')和早期綁定('As Outlook.Application')的混合。顯然,早期綁定位贏了。是的,您可以通過將所有內容重新聲明爲「Object」來修復它,但這沒有任何意義。你*有*安裝Outlook使用它的對象模型,所以它也不會影響分配。 – GSerg 2010-09-05 13:13:39

+0

你說得對,我沒注意。但是,我認爲最好使用後期綁定,因爲庫版本之間存在差異。 – Fionnuala 2010-09-05 17:39:23

0

您需要通過他們的價值是指所有常數,因此,作爲olAppointmentItem = 1:

Set olAppt = olApp.CreateItem(1) 

您可以查找值,例如http://msdn.microsoft.com/en-us/library/aa911356.aspx,或使用Outlook的對象瀏覽器來獲取值。

+0

看起來你誤解了問題 – sergtk 2010-09-05 18:16:22

+0

問題是「應該如何解決?」我經常看到關於爲什麼「它在我的電腦上運行,但在我的同事中運行」的問題,而這通常是由每臺電腦上的不同庫引起的。用晚期綁定來解決問題是很容易的。所以,在我看來,它應該通過使用遲綁定和常量值來解決。 – Fionnuala 2010-09-05 19:16:06

+0

謝謝!現在很清楚 – sergtk 2010-09-07 15:21:55

相關問題