एक्सेल में डाटा को मूव या कॉपी करने के लिए मैक्रो

अगस्त 2017


इस बार हम आपको बताएंगे कि आप 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.

यह भी पढ़ें

ओरिजिनल आर्टिकल ने पब्लिश किया. Swarnkanta ने अनुवाद किया. ताजा अपडेट: 18 जुलाई, 2017 को पूर्वाह्न 11:54 बजे RanuP ने किया.
CCM (in.ccm.net) पर उपलब्ध यह डॉक्युमेंट "एक्सेल में डाटा को मूव या कॉपी करने के लिए मैक्रो" क्रिएटिव कॉमन लाइसेंस के तहत उपलब्ध कराया गया है. जैसा कि इस नोट में साफ जाहिर है, आप इस पन्ने को लाइसेंस के तहत दी गई शर्तों के मुताबिक संशोधित और कॉपी कर सकते हैं.