मैं मानता हूँ जॉन एम ओ पी के लिए सबसे अच्छा जवाब है करने की क्षमता प्रदान करता है सवाल। विचार ने स्पष्ट रूप से कहा नहीं है, स्पष्ट उद्देश्य एक चयनित फ़ाइल नाम प्राप्त करना है, जबकि अन्य उत्तरों या तो गणना या सूचियां लौटाते हैं। हालांकि, मैं जोड़ूंगा कि msofiledialogfilepicker इस मामले में एक बेहतर विकल्प हो सकता है। अर्थात्:
Dim f As object
Set f = Application.FileDialog(msoFileDialogFilePicker)
dim varfile as variant
f.show
with f
.allowmultiselect = false
for each varfile in .selecteditems
msgbox varfile
next varfile
end with
नोट: varfile का मूल्य एक ही रहेगा के बाद से एकाधिक चयन करें गलत है (केवल एक आइटम कभी चयन किया जाता है)। मैंने समान सफलता के साथ लूप के बाहर अपना मूल्य इस्तेमाल किया। हालांकि, जॉन एम ने ऐसा करने के लिए शायद बेहतर अभ्यास किया है। साथ ही, फ़ोल्डर पिकर का चयन एक चयनित फ़ोल्डर प्राप्त करने के लिए किया जा सकता है। मैं हमेशा देर से बाध्यकारी पसंद करता हूं, लेकिन मुझे लगता है कि ऑब्जेक्ट डिफ़ॉल्ट एक्सेस लाइब्रेरी के मूल निवासी है, इसलिए यह आवश्यक नहीं हो सकता है
+1 हमेशा उम्मीद थी कि यह संभव था, बनाने की कुंजी देर से बाध्यकारी काम msoOpenFileDialog इत्यादि के बजाय संख्यात्मक विकल्प को पार कर रहा है। अभी तक एक आसान जवाब है:) –
आप कर सकते हैं, लेकिन नहीं करना चाहिए। देर से बाध्यकारी के साथ आप अंधेरे में कोडिंग कर रहे हैं .. जब आप संदर्भ जोड़ते हैं और उचित रूप से घोषित करते हैं और अपना दायरियल ऑब्जेक्ट सेट करते हैं तो आईडीई आपको संकेत देता है, जबकि देर से बाध्यकारी के साथ यह नहीं होगा। – Chris
@ क्रिस ओटीओएच, शुरुआती बाध्यकारी का उपयोग करने का मतलब है कि आपके उपयोगकर्ताओं को संदर्भ भी जोड़ना होगा। इसका मतलब है कि कुछ अनुप्रयोगों के लिए देर से बाध्यकारी आवश्यक है। –