एक्सेल / वीबीए - एक करीबी कार्यपुस्तिका से जानकारी प्राप्त करें

[एक्सेल-वीबीए] एक बंद कार्यपुस्तिका में पढ़ें

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 ()

लूप

अगर अंत

अंत उप

डाउनलोड

आप डाउनलोड कर सकते हैं:

  • स्रोत कार्यपुस्तिका
  • पुनः कार्यपुस्तिका
  • लूप को प्रदर्शित करने वाली जिप फाइल डाउनलोड करने के लिए भी उपलब्ध है।
पिछला लेख अगला लेख

शीर्ष युक्तियाँ