अपडेट करें:
सभी विवरणों को संक्षेप में प्रस्तुत करने और चर्चा करने के बाद, मैंने विकल्पों की जाँच में 2 उचित घंटे बिताए, और यह अद्यतन सभी को डॉट करना है i
।
तैयारी
सबसे पहले, मैंने VMWare द्वारा संचालित क्लीन Win7 SP1 अल्टीमेट x64 वर्चुअल मशीन पर एक क्लीन ऑफिस 2010 x86 इनस्टॉल किया (यह मेरे रोजमर्रा के परीक्षण कार्यों के लिए सामान्य दिनचर्या है, इसलिए मैंने उनमें से कई को तैनात किया है)।
फिर, मैंने केवल निम्नलिखित एक्सेल विकल्पों को बदल दिया (अर्थात अन्य सभी को छोड़ दिया गया है जैसा कि स्थापना के बाद है):
Advanced > General > Ask to update automatic links
जाँच की गई :
Trust Center > Trust Center Settings... > External Content > Enable All...
(हालांकि जो डेटा कनेक्शंस से संबंधित है, वह इस मामले के लिए महत्वपूर्ण नहीं है):
पूर्व शर्त
मैंने उनके अद्यतन उत्तर (आपकी सुविधा के लिए साझा) में सुझावों के C:\
अनुसार एक कार्यपुस्तिका बिल्कुल तैयार की और रखी @Siddharth Rout
: https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsb लिंक लिंक बुक तब हटा दी गई थी ताकि साझा में लिंक लिंक हो जाए पुस्तक अनुपलब्ध है (निश्चित रूप से)।
मैनुअल उद्घाटन
उपरोक्त साझा फ़ाइल खोलने पर (ऊपर सूचीबद्ध एक्सेल विकल्प होने पर) 2 चेतावनियाँ - उपस्थिति के क्रम में:
चेतावनी # 1
पर क्लिक करने के बाद Update
मुझे उम्मीद है कि एक और मिल गया है:
चेतावनी # 2
इसलिए, मुझे लगता है कि मेरा परीक्षण वातावरण अब बहुत अधिक समान है OP
'एस' के । अब तक हम बहुत अच्छे हैं
VBA ओपनिंग
अब मैं चित्र को स्पष्ट करने के लिए हर संभव कदम उठाऊँगा। मैं सादगी के लिए कोड की केवल प्रासंगिक पंक्तियों को साझा करूंगा (कोड के साथ पूर्ण नमूना फ़ाइल अंत में साझा की जाएगी)।
1. सरल अनुप्रयोग .orkbooks.Open
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
कोई आश्चर्य नहीं - यह बीओटीएच चेतावनी का उत्पादन करता है, जैसा कि ऊपर दिए गए मैनुअल उद्घाटन के लिए है।
2. आवेदन.डिसप्लेअलरट्स = गलत
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
यह कोड WARNING # 1 के साथ समाप्त होता है , और या तो क्लिक किए गए विकल्प ( Update
/ Don't Update
) NO को और चेतावनी देते हैं, अर्थात # 2 चेतावनी कोApplication.DisplayAlerts = False
दबा देते हैं ।
3. Application.AskToUpdateLinks = गलत
Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True
के विपरीत DisplayAlerts
, यह कोड केवल # 2 के साथ समाप्त होता है , अर्थात # 1 कोApplication.AskToUpdateLinks = False
दबाता है ।
4. दोहरा झूठा
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
जाहिरा तौर पर, यह कोड BOTH WARNINGS को दबाने के साथ समाप्त होता है ।
5. अपडेटलिंक: = गलत
Application.Workbooks.Open Filename:="C:\Book1withLinkToBook2.xlsx", UpdateLinks:=False
अंत में, यह 1-लाइन समाधान (मूल रूप से प्रस्तावित @brettdj
) उसी तरह से काम करता है जैसे डबल फाल्स: कोई चेतावनी नहीं दिखाई जाती है!
निष्कर्ष
एक अच्छे परीक्षण अभ्यास और बहुत महत्वपूर्ण हल किए गए मामले को छोड़कर (मैं अपनी कार्यपुस्तिकाओं को तीसरी पार्टी को भेजते समय हर रोज ऐसे मुद्दों का सामना कर सकता हूं, और अब मैं तैयार हूं), 2 और चीजें सीखी गईं:
- एक्सेल विकल्प DO मैटर, वर्जन की परवाह किए बिना - खासकर जब हम VBA समाधानों में आते हैं।
- हर मुसीबत का छोटा और सुरुचिपूर्ण समाधान होता है - एक साथ स्पष्ट और जटिल नहीं। उसके लिए बस एक और प्रमाण!)
उन सभी को बहुत बहुत धन्यवाद जिन्होंने समाधान में योगदान दिया, और विशेष रूप से ओपी जिन्होंने सवाल उठाया। आशा है कि मेरी जाँच और अच्छी तरह से वर्णित परीक्षण कदम मेरे लिए न केवल सहायक थे)
उपरोक्त कोड के नमूने के साथ नमूना फ़ाइल साझा की गई है (कई पंक्तियों को जानबूझकर टिप्पणी की गई है): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm
मूल उत्तर ( कुछ विकल्पों के साथ एक्सेल 2007 के लिए परीक्षण किया गया ):
यह कोड मेरे लिए ठीक काम करता है - यह वाइल्डकार्ड के उपयोग से निर्दिष्ट सभी एक्सेल फाइलों के माध्यम से लूप करता है InputFolder
:
Sub WorkbookOpening2007()
Dim InputFolder As String
Dim LoopFileNameExt As String
InputFolder = "D:\DOCUMENTS\" 'Trailing "\" is required!
LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""
Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True
LoopFileNameExt = Dir
Loop
End Sub
मैंने इसे अनुपलब्ध बाहरी लिंक वाली पुस्तकों के साथ आज़माया - कोई चेतावनी नहीं।
नमूना फ़ाइल: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm