में वर्ड दस्तावेज़ खोलना/सक्रिय करना मुझे उम्मीद है कि एक वीबी/वीबीए विशेषज्ञ मेरी मदद कर सकता है। निम्न पर विचार करें: उपयोगकर्ता Word 2003 में और Normal.dot AutoOpen
मैक्रो के भीतर एक दस्तावेज़ खोलता है, हम वर्तमान दस्तावेज़ को देखते हैं, और यदि इसे किसी वेबपृष्ठ पर किसी लिंक पर क्लिक करके खोला गया है, और कुछ अन्य एप्लिकेशन विशिष्ट मापदंड, स्ट्रीम 'प्रतिलिपि' को बंद करने और स्रोत दस्तावेज़ को खोलने (एक साझा ड्राइव पर पाया हम उपयोगकर्ता की पहुंच है मान सकते हैं):वीबीए मैक्रो
Documents.Open origDoc
Documents(ActiveDocument.FullName).Close SaveChanges:=wdDoNotSaveChanges
Documents(origDoc).Activate
With ActiveDocument
''# Do work
End With
मेरे सोचा कि मैं यह सुनिश्चित करें कि मूल Activate
कॉल करने के लिए जरूरी था दस्तावेज़ ActiveDocument
था, लेकिन मुझे .Activate
कॉल पर 4160 'खराब फ़ाइल नाम' त्रुटि मिल रही है। अगर मैं .Activate
पर कॉल पर टिप्पणी करता हूं, तो ऐसा लगता है कि ActiveDocument
मूल दस्तावेज़ पर सेट है, भले ही अन्य दस्तावेज़ पहले ही खोले गए हों (मुझे सच में यकीन नहीं है कि दस्तावेज़ संग्रह कैसे प्रबंधित किया जाता है, और कैसे Word निर्धारित करता है कि अगला ActiveDocument
क्या होगा यदि आप वर्तमान सक्रिय दस्तावेज़ को प्रोग्रामेटिक रूप से बंद करते हैं)
तो, दस्तावेज़ पर .Open
पर कॉल करने से दस्तावेज़ को ActiveDocument
स्पष्ट रूप से सेट किया गया है? साथ ही, पहले से सक्रिय दस्तावेज़ पर .Activate
पर कॉल करने से त्रुटि उत्पन्न होती है?
मैं वास्तव में इसके बारे में अधिक दस्तावेज नहीं ढूंढ पाया है, इसलिए किसी भी सुझाव और अंतर्दृष्टि के लिए अग्रिम धन्यवाद!
Document(origDoc).Activate
होना चाहिए दस्तावेज़ रों:
संभवतः आप दस्तावेज़ की स्ट्रीम की गई प्रतिलिपि को अपने कोड में ActiveDocument के रूप में प्रबंधित कर रहे हैं। उस दस्तावेज़ ऑब्जेक्ट को अपने कोड की शुरुआत में एक चर के लिए असाइन करना बेहतर होगा और शेष कोड के माध्यम से अपने चर का उपयोग करना बेहतर होगा। जैसा कि दूसरे ने इंगित किया है, आप संभवतः कोड की दूसरी पंक्ति में दस्तावेज़ के गलत संस्करण को बंद कर रहे हैं। जब भी आप इसे खोलते हैं तो "मूल" दस्तावेज़ ऑब्जेक्ट को चर के लिए असाइन करना बुद्धिमान होगा। – robartsd