कॉपी करने के लिए अगला खाली पंक्ति - एक्सेल टिप्स

विषय - सूची

NYARCH लिखता है

मैं एक सेल प्रविष्टि के आधार पर एक्सेल को एक नई एक्सेल वर्कशीट में पूरी पंक्ति में कॉपी करना चाहता हूं। उदाहरण के लिए मेरे पास A8: AG8 में डेटा है, मैं चाहता हूं कि एक्सेल शीट को पूरी पंक्ति में कॉपी करें "" a "यदि H8 में मान" ir "है, और शीट" b "यदि H8 में मान" RR "है। सबसे जटिल हिस्सा है और न केवल कॉपी किया गया है, मुझे इसे वर्कशीट पर अगली रिक्त पंक्ति में कॉपी करने की आवश्यकता है। 150 पंक्तियों में से या केवल प्रत्येक प्रकार के लगभग 15 को वास्तव में एक नई शीट पर कॉपी किया जाएगा।

MrExcel किसी भी पाठक को 50 बोनस अंक प्रदान करेगा, जो लोटस मैगज़ीन के लेख को याद करता है, जिसमें 10 बेहतरीन टिप्स दिए गए हैं, जहाँ टिप # 4 "एक सीमा के अंत में जाने के लिए अंतिम कुंजी का उपयोग करें" था। लोटस के दिनों में वापस जाने पर, आप सेलपॉइंटर को डेटा के एक ब्लॉक में कहीं भी डाल सकते हैं, END फिर नीचे, और सेल पॉइंटर रेंज के अंत तक सवारी करेगा। एक्सेल में समान कार्यक्षमता है, वीबीए में समान कार्यक्षमता है, और यह एक शीट पर डेटा की अंतिम पंक्ति खोजने की कुंजी है।

VBA तकनीक एंड + x कुंजी का उपयोग करने के लिए एंड (xlDown) को एंड + अप कुंजी का अनुकरण करने के लिए एंड (xlDown) का उपयोग करना है। इस कुंजी अनुक्रम को दबाने से सेल पॉइंटर को डेटा के एक आकस्मिक सीमा के अगले किनारे पर ले जाया जाएगा। कल्पना करें कि A1: A10 और A20: A30 में मान हैं। A1 में शुरू करें। हिट एंड + डाउन और सेल पॉइंटर A10 में चला जाता है। हिट एंड + डाउन और आप A20 पर जाते हैं, जो डेटा की अगली सन्निहित सीमा का ऊपरी छोर है। हिट एंड + डाउन करें और आप A30 पर जाएंगे। मैं वास्तव में नुकसान में हूं कि इस व्यवहार को सरल अंग्रेजी में कैसे समझा जाए। बस इसे आज़माएं और आप देखेंगे कि यह कैसे काम करता है।

मेरे द्वारा उपयोग की जाने वाली चाल स्प्रेडशीट में अंतिम पंक्ति में कॉलम A पर शुरू होती है और फिर एंड + अप को हिट करती है। यह मुझे डेटा के साथ अंतिम पंक्ति में ले जाएगा। मैं तब अगली पंक्ति को एक रिक्त पंक्ति के रूप में उपयोग करना जानता हूं।

इस सप्ताह की समस्या को हल करने के लिए एक ब्रूट-फोर्स मैक्रो है। हां, आप निश्चित रूप से यह अधिक फुर्ती से एक ऑटोफिल्टर के साथ कर सकते हैं। वर्तमान में डेटा शीट 1 पर है, पंक्ति 2 में शीर्षक के साथ।

Public Sub CopyRows() Sheets("Sheet1").Select ' Find the last row of data FinalRow = Range("A65536").End(xlUp).Row ' Loop through each row For x = 2 To FinalRow ' Decide if to copy based on column H ThisValue = Range("H" & x).Value If ThisValue = "ir" Then Range("A" & x & ":AG" & x).Copy Sheets("a").Select NextRow = Range("A65536").End(xlUp).Row + 1 Range("A" & NextRow).Select ActiveSheet.Paste Sheets("Sheet1").Select ElseIf ThisValue = "RR" Then Range("A" & x & ":AG" & x).Copy Sheets("b").Select NextRow = Range("A65536").End(xlUp).Row + 1 Range("A" & NextRow).Select ActiveSheet.Paste Sheets("Sheet1").Select End If Next x End Sub

यह देखते हुए कि Excel 2007 में 65,536 से अधिक पंक्तियाँ हैं, आप इस मैक्रो का उपयोग कर सकते हैं ताकि यह आगे संगत हो। ध्यान दें कि मैं यहां RANGE के बजाय CELLS (पंक्ति, स्तंभ) का उपयोग करता हूं:

Public Sub CopyRows() Sheets("Sheet1").Select ' Find the last row of data FinalRow = Cells(Rows.Count, 1).End(xlUp).Row ' Loop through each row For x = 2 To FinalRow ' Decide if to copy based on column H ThisValue = Cells(x, 8).Value If ThisValue = "ir" Then Cells(x, 1).Resize(1, 33).Copy Sheets("a").Select NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(NextRow, 1).Select ActiveSheet.Paste Sheets("Sheet1").Select ElseIf ThisValue = "RR" Then Cells(x, 1).Resize(1, 33).Copy Sheets("b").Select NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(NextRow, 1).Select ActiveSheet.Paste Sheets("Sheet1").Select End If Next x End Sub

मैक्रो का उपयोग कैसे करें, इस पर युक्तियों के लिए, एक्सेल VBA संपादक का परिचय देखें।

दिलचस्प लेख...