如果我有一個電子表格,我已經從VBA編輯器中引用了MS Outlook 14.0 Object Library,並且只安裝了MS Outlook 12.0的用戶,那麼當用戶打開電子表格時,他們會在此行上發現編譯錯誤:防止因用戶安裝舊版MS Office(MS Outlook)而導致Excel VBA編譯錯誤?
Range("export_date") = Date - 1
如果他們走進工具,參考文獻,在參考文獻列表中,有這樣的錯誤:
MISSING: MS Outlook 14.0 Object Library
如果他們取消了圖書館,並改爲選擇
MS Outlook 12.0 Object Library
...代碼然後正確編譯和電子表格適用於他們。
我真的不明白爲什麼它在Date()函數上失敗,因爲這是VBA函數,而不是Outlook函數。但更重要的是,有沒有辦法避免這種情況?我唯一能想到的就是不設置引用,只使用Object類型的變量並通過CreateObject(「Outlook.Application」)等實例化,但我討厭放棄強類型等等。
Can任何人都可以提出一種更好的方法來處理與舊版MS Office的向後兼容問題?
該死的,你的回答就是我害怕的情況。 「...在您分發您的應用程序之前,將代碼更改爲Latebinding。」 - 說起來容易做起來難! :)如果一個人做了很多這樣的事情,那麼使用舊的類型庫會更可取,但對於我的情況,我只會使用Early Binding,我猜。 – tbone 2012-02-29 00:53:59
@tbone:相信我。將早期綁定轉換爲後期綁定非常容易:) – 2012-02-29 06:44:55
@tbone當您嘗試在運行時添加對不同outlook版本的引用時,我會與Sid的建議一起去解決這個問題。 +1 – brettdj 2012-02-29 07:56:47