मेरे पास दो एक्सेल वर्कबुक हैं जिनका मैं प्रयास कर रहा हूंसे पढ़ें। मुझे पहले कॉलम से पढ़ने की जरूरत है, और उस फ़ील्ड की तुलना दूसरी कार्यपुस्तिका में किसी फ़ील्ड से करनी है। यदि कोई मेल है, तो मैं मूल पंक्ति को एक नई एक्सेल कार्यपुस्तिका में कॉपी करना चाहता हूं, और दूसरे कॉलम के एक टुकड़े के साथ नाम जोड़ना चाहता हूं। इसके अलावा, यदि उस पंक्ति में एक और कॉलम भरा हुआ है, तो मुझे मूल पंक्ति को फिर से नई कार्यपुस्तिका में डुप्लिकेट करना होगा, और उस नाम को जोड़ना होगा। यह प्रति पंक्ति 20 बार तक होगा, लेकिन हमेशा नहीं।
असल में, मुझे ऐसा कुछ करने की ज़रूरत है:
Workbook A:
Name OtherData1 OtherData2
-------- ---------- ----------
Railroad Data Data
MailRoute Data Data
BoatPath Data Data
Workbook B:
Name rtuTopic[1] rtuTopic[2] [.....] rtuTopic[20]
-------- -------- -------- --------
Railroad Route_01 Route_05 Route_21
MailRoute Route_12 NULL NULL
BoatPath Route_01 Route_15 NULL
Workbook C (the result I want)
Name OtherData1 OtherData2 rtuTopic
-------- ---------- ---------- --------
Railroad_01 Data Data Route_01
Railroad_05 Data Data Route_05
...........
Railroad_21 Data Data Route_21
MailRoute_12 Data Data Route_12
BoatPath_01 Data Data Route_01
BoatPath_15 Data Data Route_15
मुझे जिन स्तंभों को जोड़ने की आवश्यकता है वे सुविधाजनक नहीं हैंएक दूसरे के बगल में। वे ५ या ६ अन्य कॉलमों से अलग होते हैं, देते हैं या लेते हैं, और मुझे नहीं पता कि कहां से शुरू किया जाए। मैंने चारों ओर खोज की और देखा कि एक कार्यपुस्तिका से दूसरी कार्यपुस्तिका में पूरी शीट को कैसे कॉपी किया जाए, लेकिन मैंने यह नहीं देखा कि वास्तव में कैसे किया जाए विशेष रूप से एक पंक्ति को खोदें और डुप्लिकेट करें जिस तरह से मुझे चाहिए।
उत्तर:
जवाब के लिए 0 № 1ऐसा लगता है कि आप एक विशिष्ट प्रश्न पूछने के बजाय आपके लिए लिखे जाने वाले समाधान के लिए पूछ रहे हैं, लेकिन यहां कुछ संकेत दिए गए हैं जो आपको जाने के लिए हैं:
यह मानते हुए कि अन्य कार्यपुस्तिकाएँ पहले से ही खुली हैं, आप कार्यपुस्तिकाओं की सूची का उपयोग करके अन्य पुस्तकों का संदर्भ ले सकते हैं,
Dim workBookA As Workbook
Dim workBookB As Workbook
Dim workBookC As Workbook
Set workBookA = Workbooks("Workbook A")
Set workBookB = Workbooks("Workbook B")
Set workBookC = Workbooks("Workbook C")
उन कार्यपुस्तिकाओं में शीट को शीट के नाम का उपयोग करके संदर्भित किया जा सकता है यानी यदि आप वर्कबुक ए पर "मेन" नामक शीट चाहते हैं तो आप इसका उपयोग कर सकते हैं:
workBookA.Sheets("Main").Activate
कार्यपुस्तिका सी पर शीट से एक कॉल "रिपोर्ट" में एक कॉलम की प्रतिलिपि बनाई जा सकती है जैसे:
workBookA.Sheets("Main").Range("a1", workBookA.Sheets("Main").Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Range("a1").PasteSpecial
या यदि इसका पालन करना आसान है
workBookA.Sheets("Main").Activate
Range("a1", Range("a1").End(xlDown)).Copy
workBookC.Sheets("Report").Activate
Range("a1").PasteSpecial
सौभाग्य