एक्सेल / वीबीए - एक करीबी कार्यपुस्तिका से जानकारी प्राप्त करें
![](http://img.brin-designs.com/img/games/308/excel-vba-retrieve-information-from-close-workbook.png)
[एक्सेल-वीबीए] एक बंद कार्यपुस्तिका में पढ़ें
VBA के अंतर्गत कई विधियाँ हैं, बाद में बिना खोले एक्सेल वर्कबुक से डेटा पढ़ने के लिए। इनमें से अधिकांश विधियां उनकी जटिलता के लिए जानी जाती हैं, लेकिन हालांकि, OLE DB कनेक्शन (रीड-ओनली मोड) का उपयोग किए बिना, इसके चारों ओर पाने के लिए थोड़ी सी चाल है।परिचय
हम अपने "रिकैप" कार्यपुस्तिका में जानकारी को पुनः प्राप्त करने का प्रयास करेंगे। जानकारी "C: \ Pijaku \ Ne_fait_rien_de_ses_journéd \ CCM \" निर्देशिका में स्थित "स्रोत" कार्यपुस्तिका से " Sheet1" की कोशिकाओं "A1: F10" की निम्न श्रेणी में स्थित है।
- सबसे पहले वर्कबुक खोलें और सेल A1 से सेल F10 तक, शीट 1 में "पिजाकु" डालें और "C: \ Pijaku \ Ne_fait_rien_de_journées \ CCM \" में "source.xls" के रूप में सहेजें।
- आइए हम इस कार्यपुस्तिका को बंद करें।
- एक दूसरी कार्यपुस्तिका खोलें और इसे " Recap.xls " (डेस्कटॉप पर) के रूप में सहेजें।
एक्सेल द्वारा विधि:
अपने Recap.xls कार्यपुस्तिका में:
एक परिभाषित नाम डालें।
- मेनू: सम्मिलित करें
- पसंद: नाम
- पर क्लिक करें: सेट करें
- कार्यपुस्तिका में नाम => प्रकार: सीमा
- Refers to => Enter = 'C: \ Pijaku \ Ne_fait_rien_de_ses_journées \ CCM \ [source.xls] Feuil1! $ A $ 1: $ F 10%!
- Add पर क्लिक करें।
- अपनी कार्यपुस्तिका में, A1: = श्रेणी में सूत्र दर्ज करें
- और मान्य करें।
- A1 से F10 तक इस फॉर्मूले को स्ट्रेच करें ...
VBA कोड
उप आयातकडॉनेन्ससुवर ()स्ट्रिंग के रूप में डिम केमिन, स्ट्रिंग के रूप में फिशर
चेमिन = "C: \ Pijaku \ Ne_fait_rien_de_ses_journées \ CCin \"
फिचियर = "source.xls"
ThisWorkbook.Names.Add "प्रतिज्ञा", _
RefersTo: = "=" "& Chemin &" ["& Fichier &"] Feuil1 '! $ A $ 1: $ F $ 10 "!
शीट्स के साथ ("Feuil2")
। [A1: F10] = "= प्लेज"
। [A1: F10] .Copy
चादरें ("Feuil1")। रेंज ("A1")। PasteSpecial xlPasteValues
। [A1: F10] .Clear
के साथ समाप्त करना
अंत उप
ध्यान दें कि
इन सबसे ऊपर, यह सुनिश्चित कर लें कि निर्देशिका का मार्ग स्पेलिंग गलियारा है। यह भी जांचें कि क्या निर्देशिका पथ और कार्यपुस्तिका के नाम के बीच "\" मौजूद है।
उपयोग का उदाहरण
यह कोड एक निर्देशिका में सभी कार्यपुस्तिकाओं के माध्यम से लूप करता है और सेल A1 (शीट 1) की सामग्री को निकालता है, इस मामले में उदाहरण के लिए, एक तारीख।
विकल्प स्पष्टउप आयातक ()
ऑब्जेक्ट के रूप में मंद objShell, ऑब्जेक्ट के रूप में objFolder
स्ट्रिंग के रूप में मंद कैमिन, स्ट्रिंग के रूप में फिशर
सेट करें objShell = CreateObject ("Shell.Application")
ObjFolder सेट करें = objShell.BrowseForFolder (& H0 &, "Choisir un rperperire", और H1 &)
अगर objFolder कुछ भी नहीं है
MsgBox "परित्यक्त लेखक", vbCritical, "घोषणा"
अन्य
कॉलम (1) .NumberFormat = "m / d / yyyy"
चेमिन = objFolder.ParentFolder.ParseName (objFolder.Title) .Path और ""
[बी १] = चेमीन
फ़िचियर = डिर (चेमिन और "* .xls")
डू व्हेन लेन (फिशियर)> 0
अगर फिचियर ThisWorkbook.Name तो
ThisWorkbook.Names.Add "प्लाज", _
RefersTo: = "=" "और चेमीन और" ["और फ़िशर और"] Feuil1 '! $ A $ 1 "!
शीट्स के साथ ("Feuil2")
। [ए 1] = "= प्लाज"
। [ए 1] .Copy
चादरें ("Feuil1")। रेंज ("A" & Rows.Count)। और (xUUp) .Offset (1, 0) ।PasteSpecial xlPasteValues।
चादरें ("Feuil1")। रेंज ("A" & Rows.Count)। और (xUUp) .Offset (0, 1) = fichier
के साथ समाप्त करना
अगर अंत
fichier = Dir ()
लूप
अगर अंत
अंत उप
डाउनलोड
आप डाउनलोड कर सकते हैं:
- स्रोत कार्यपुस्तिका
- पुनः कार्यपुस्तिका
- लूप को प्रदर्शित करने वाली जिप फाइल डाउनलोड करने के लिए भी उपलब्ध है।