यदि मेरे पास एक स्प्रेडशीट है जहां मैंने वीबीए संपादक से एमएस आउटलुक 14.0 ऑब्जेक्ट लाइब्रेरी का संदर्भ दिया है, और एक उपयोगकर्ता जिसके पास केवल एमएस आउटलुक 12.0 स्थापित है, तो जब वह उपयोगकर्ता स्प्रैडशीट खोलता है, तो उन्हें इस पंक्ति पर संकलन त्रुटि मिलती है:एमएस ऑफिस (एमएस आउटलुक) के पुराने संस्करण वाले उपयोगकर्ताओं के कारण एक्सेल वीबीए संकलन त्रुटियों को रोकना?
Range("export_date") = Date - 1
अगर वे उपकरण, संदर्भ में जाते हैं, संदर्भ सूची में, इस त्रुटि है:
MISSING: MS Outlook 14.0 Object Library
वे कहते हैं कि पुस्तकालय का चयन रद्द, और बदले का चयन करते हैं
MS Outlook 12.0 Object Library
... कोड फिर ठीक से संकलित करता है और स्प्रेडशीट उनके लिए ठीक काम करता है।
मुझे वास्तव में समझ में नहीं आता कि यह दिनांक() फ़ंक्शन पर क्यों विफल रहता है, क्योंकि यह वीबीए फ़ंक्शन है, न कि Outlook फ़ंक्शन। लेकिन इससे भी महत्वपूर्ण बात यह है कि इस स्थिति से बचने का कोई तरीका है? केवल एक चीज जिसे मैं सोच सकता हूं, संदर्भों को सेट नहीं करना है, और केवल ऑब्जेक्ट के प्रकारों का उपयोग करें और CreateObject ("Outlook.Aplication") के माध्यम से तत्काल टाइप करें, लेकिन मुझे मजबूत टाइपिंग आदि को नफरत है,
कैन कोई भी एमएस ऑफिस के पुराने संस्करणों के साथ पिछड़ा संगतता के इस मुद्दे को संभालने का एक बेहतर तरीका सुझाता है?
अरे, आपका जवाब वह है जो मुझे डर था कि मामला होने वाला था। "... आपके आवेदन को वितरित करने से पहले, कोड को लेटबाइंडिंग में बदलें।" - किए जाने से कहीं ज्यादा आसान कहा !!!! :) किसी व्यक्ति ने बहुत कुछ किया है, तो पुराने प्रकार की लाइब्रेरी का उपयोग करना बेहतर होगा, लेकिन मेरे मामले के लिए मैं केवल प्रारंभिक बाध्यकारी अनुमान लगाऊंगा। – tbone
@ टोनोन: मेरा विश्वास करो। शुरुआती बाइंड को देर से बांधने के लिए कनवर्ट करना बहुत आसान है :) –
@tbone जबकि आप \ nd रनटाइम के दौरान विभिन्न दृष्टिकोण संस्करणों के संदर्भ जोड़ने का प्रयास करते हैं, तो मैं इस पर सिड की सलाह के साथ जाऊंगा। +1 – brettdj