इस बार हम आपको बताएंगे कि आप VBA का इस्तेमाल करते हुए माइक्रोसॉफ्ट एक्सेल में स्प्रेडशीटों के बीच डाटा का ट्रांसफर या उसे कॉपी कर सकती हैं. इस खास उदाहरण में हम आपको दिए गए सवाल की मदद से डाटा को कैसे कम्बाइन या जोड़ते हैं, ये बताएंगे. कम्बाइन करने का ये काम आपके मौजूदा वर्कशीट में डाटा को कम्बाइन करने में मदद करेगा ताकि आपका विश्लेषण आसान हो सके.
चलिए एक उदाहरण लेते हैं जिसमें आपको एक वर्कबुक में से डाटा कॉपी करने की जरूरत है और फिर आपको उसे बदलते हुए दूसरे वर्कबुक में डालना है. इसमें वर्कबुक संख्या एक (सोर्स बर्कबुक) में 1 2 3 4 5 और वर्कबुक संख्या दो में 6 7 8 9 0 है.
मैक्रो के सक्रिय होने के बाद वर्कबुक संख्या दो में 6 7 8 9 0 1 2 3 4 5 होना चाहिए. दोनों वर्कबुक का फॉरमैट एक है.
यहां एक मैक्रो दिया गया है जो आपके डाटा को ट्रांसफर और अमेंड यानी संलग्न कर सकता है. (को़ड में दिया गया NOTE पढ़ना जरूर याद रखें):
Sub CopyData()
Dim sBook_t As String
Dim sBook_s As String
Dim sSheet_t As String
Dim sSheet_s As String
Dim lMaxRows_t As Long
Dim lMaxRows_s As Long
Dim sMaxCol_s As String
Dim sRange_t As String
Dim sRange_s As String
sBook_t = "Target Data WB- Copy data to WB.xls"
sBook_s = "Source Data WB - Copy data to WB.xls"
sSheet_t = "Target WB"
sSheet_s = "Source"
lMaxRows_t = Workbooks(sBook_t).Sheets(sSheet_t).Cells(Rows.Count, "A").End(xlUp).Row
lMaxRows_s = Workbooks(sBook_s).Sheets(sSheet_s).Cells(Rows.Count, "A").End(xlUp).Row
sMaxCol_s = Workbooks(sBook_s).Sheets(sSheet_s).Cells(1, Columns.Count).End(xlToLeft).Address
sMaxCol_s = Mid(sMaxCol_s, 2, InStr(2, sMaxCol_s, "$") - 2)
यदि(lMaxRows_t = 1) तो
sRange_t = "A1:" & sMaxCol_s & lMaxRows_s
sRange_s = "A1:" & sMaxCol_s & lMaxRows_s
Workbooks(sBook_t).Sheets(sSheet_t).Range(sRange_t) = Workbooks(sBook_s).Sheets(sSheet_s).Range(sRange_s).Value
या
sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)
sRange_s = "A2:" & sMaxCol_s & lMaxRows_s
Workbooks(sBook_t).Sheets(sSheet_t).Range(sRange_t) = Workbooks(sBook_s).Sheets(sSheet_s).Range(sRange_s).Value
' ###################### NOTE #################
'बतौर सीरियल नंबर यूज की जा रही इस लाइन को ठीक करना होगा. कॉपी न करें तो बेहतर होगा.
' यदि कोई जरूरत नहीं तो नीचे वाली लाइन डिलीट कर दें
Workbooks(sBook_t).Sheets(sSheet_t).Range("A" & lMaxRows_t).AutoFill Destination:=Workbooks(sBook_t).Sheets(sSheet_t).Range("A" & lMaxRows_t & ":A" & (lMaxRows_t + lMaxRows_s - 1)), Type:=xlFillSeries
End if
End sub
Photo: © Microsoft.