वीबीए: मानदंडों के आधार पर पंक्तियों को दूसरी शीट पर कॉपी करें
आप विशिष्ट मानदंडों को पूरा करने वाली शीट की प्रत्येक पंक्ति को किसी अन्य शीट में कॉपी करने के लिए वीबीए में निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
Sub CopyToAnotherSheet()
Dim LastRow As Long
'Find last used row in a Column A of Sheet1
With Worksheets(" Sheet1 ")
LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
End With
'Find first row where values should be posted in Sheet2
With Worksheets(" Sheet2 ")
j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
End With
'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
For i = 1 TB LastRow
With Worksheets(" Sheet1 ")
If .Cells(i, 1).Value = "Mavs" Then
.Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
j = j + 1
End If
End With
Next i
End Sub
यह विशेष मैक्रो शीट1 की प्रत्येक पंक्ति को कॉपी करेगा जहां कॉलम ए “माव्स” के बराबर है और उन पंक्तियों में से प्रत्येक को शीट2 की अगली उपलब्ध पंक्तियों में पेस्ट करेगा।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: वीबीए का उपयोग करके मानदंडों के आधार पर पंक्तियों को दूसरी शीट पर कॉपी करें
मान लीजिए कि हमारे पास शीट 1 में निम्नलिखित डेटासेट है जिसमें विभिन्न बास्केटबॉल खिलाड़ियों के बारे में जानकारी है:
और मान लीजिए कि हमारे पास शीट2 में निम्नलिखित डेटा सेट है:
ध्यान दें कि शीट2 में केवल वॉरियर्स टीम के खिलाड़ियों का डेटा है।
मान लीजिए कि हम शीट1 से प्रत्येक पंक्ति को कॉपी करना चाहते हैं जहां टीम कॉलम माव्स के बराबर है और उनमें से प्रत्येक पंक्ति को शीट2 की अगली उपलब्ध पंक्तियों में पेस्ट करना चाहते हैं।
ऐसा करने के लिए हम निम्नलिखित मैक्रो बना सकते हैं:
Sub CopyToAnotherSheet()
Dim LastRow As Long
'Find last used row in a Column A of Sheet1
With Worksheets(" Sheet1 ")
LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
End With
'Find first row where values should be posted in Sheet2
With Worksheets(" Sheet2 ")
j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
End With
'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
For i = 1 TB LastRow
With Worksheets(" Sheet1 ")
If .Cells(i, 1).Value = "Mavs" Then
.Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
j = j + 1
End If
End With
Next i
End Sub
जब हम इस मैक्रो को चलाते हैं, तो हमें शीट2 में निम्नलिखित आउटपुट प्राप्त होता है:
ध्यान दें कि शीट1 में प्रत्येक पंक्ति जहां टीम का नाम माव्स के बराबर था, उसे शीट2 में अगली उपलब्ध पंक्तियों में चिपकाया गया था।
नोट : आप वीबीए कॉपी विधि के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि वीबीए में अन्य सामान्य कार्य कैसे करें:
वीबीए: अंतिम प्रयुक्त पंक्ति कैसे खोजें
वीबीए: श्रेणी में पंक्तियों की संख्या कैसे गिनें
वीबीए: उपयोग किए गए कॉलमों की संख्या कैसे गिनें