यह ट्यूटोरियल प्रदर्शित करेगा कि वीबीए के साथ लाइन से टेक्स्ट फाइल लाइन से सामग्री को कैसे पढ़ा जाए।
हम या तो टेक्स्ट फ़ाइल को पूरी फ़ाइल के रूप में पढ़ सकते हैं, या पंक्ति दर पंक्ति पढ़ सकते हैं।
पाठ फ़ाइल पढ़ें पंक्ति द्वारा पंक्ति
टेक्स्ट फ़ाइल में टेक्स्ट आमतौर पर कई पंक्तियों से बना होता है, जो सीमांकक द्वारा अलग किया जाता है। ये अल्पविराम (","), अंतरिक्ष के साथ अल्पविराम (","), अर्धविराम (";"), अंतरिक्ष के साथ अर्धविराम (";"), एक स्थान (" "), एक टैब (vbTab) हो सकता है ) या दुर्लभ मामलों में कोई अन्य चरित्र जैसे टिल्ड (~)। लाइनों को आम तौर पर एक लाइन ब्रेक (vbCRLF) द्वारा अलग किया जाता है।
वीबीए में हमारे वर्कशीट में टेक्स्ट फ़ाइल लाइन को लाइन से पढ़ने का सबसे आसान तरीका पहले सेल का चयन करना है जहां हम टेक्स्ट रखना चाहते हैं, और फिर निम्न कोड चलाएं:
1234567891011 | उप रीडफाइल ()स्ट्रिंग के रूप में मंद strFile, स्ट्रिंग के रूप में strLinestrFile = "सी: \ टेस्ट \ TestFile.txt"# 1 के रूप में इनपुट के लिए strFile खोलेंईओएफ तक करें(1)लाइन इनपुट #1, स्ट्रलाइनएक्टिवसेल = स्ट्रलाइनActiveCell.Offset(1, 0)। चुनेंकुंडलीबंद #1अंत उप |
यह टेक्स्ट फ़ाइल की प्रत्येक पंक्ति को एक्सेल में एक एकल कक्ष में रखेगा।
हम FileSystemObject का उपयोग करके VBA में एक टेक्स्ट फ़ाइल भी पढ़ सकते हैं। नीचे दिए गए कोड में हमने फाइल सिस्टम ऑब्जेक्ट के साथ लेट बाइंडिंग का उपयोग किया है। आप अपने वीबीए प्रोजेक्ट में इसका संदर्भ भी बना सकते हैं। अधिक जानकारी के लिए यहां देखें।
123456789101112131415 | उप रीडटेक्स्टफाइल ()स्ट्रिंग के रूप में मंद स्ट्रलाइनवस्तु के रूप में मंद FSOवस्तु के रूप में मंद टीएसओFSO सेट करें = CreateObject ("Scripting.FileSystemObject")सेट TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")TSO नहीं करते हुए करें।AtEndOfStreamstrLine = TSO.ReadLineएक्टिवसेल = स्ट्रलाइनActiveCell.Offset(1, 0)। चुनेंकुंडलीटीएसओ। बंद करेंसेट टीएसओ = कुछ नहींFSO सेट करें = कुछ नहींअंत उप |
यदि हम लाइनों को उनके सीमांकक द्वारा कोशिकाओं में अलग करना चाहते हैं तो हम थोड़ा अधिक जटिल लूप बना सकते हैं। यहां हमने कोड में अर्ली बाइंडिंग का उपयोग किया है और फाइल सिस्टम ऑब्जेक्ट घोषित किया है।
123456789101112131415161718192021222324 | उप ReadTextFileWithSeparators ()स्ट्रिंग के रूप में मंद स्ट्रलाइननई फाइलसिस्टमऑब्जेक्ट के रूप में मंद एफएसओवस्तु के रूप में मंद टीएसओडिम स्ट्रलाइन एलीमेंट्स वैरिएंट के रूप मेंलंबे समय के रूप में मंद सूचकांकडिम आई ऐज़ लॉन्गस्ट्रिंग के रूप में मंद सीमांककFSO सेट करें = CreateObject ("Scripting.FileSystemObject")सेट TSO = FSO.OpenTextFile("C:\Test\TestFile.txt")सीमांकक = ","सूचकांक = 1जबकि TSO.AtEndOfStream = False . करेंस्ट्रलाइन = टीएसओ। रीडलाइनStrLineElements = स्प्लिट (StrLine, Delimiter)i = LBound(StrLineElements) से UBound(StrLineElements) के लिएसेल (इंडेक्स, आई + 1)। वैल्यू = स्ट्रलाइन एलिमेंट्स (i)अगला मैंइंडेक्स = इंडेक्स + 1कुंडलीटीएसओ। बंद करेंसेट टीएसओ = कुछ नहींFSO सेट करें = कुछ नहींअंत उप |
यह नीचे दिए गए ग्राफिक के अनुसार एक्सेल में अलग-अलग सेल में लाइनों को अलग करने का परिणाम देगा।