वीबीए: सेल वैल्यू के आधार पर पंक्तियों को कैसे हटाएं


आप सेल मान के आधार पर पंक्तियों को हटाने के लिए VBA में निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

यह विशेष मैक्रो श्रेणी A1:C10 में सभी पंक्तियों को हटा देता है जहां कॉलम B का मान “Is” के बराबर होता है।

यह मैक्रो निम्नलिखित चरणों का उपयोग करता है:

  • केवल उन पंक्तियों को प्रदर्शित करने के लिए A1:C10 पर फ़िल्टर लागू करें जिनका कॉलम B में मान “है” है।
  • फिर सभी दृश्यमान सेल हटा दें।
  • फिर फ़िल्टर हटा दें.

इसका प्रभाव A1:C10 श्रेणी की सभी पंक्तियों को हटाने पर पड़ता है जहां कॉलम B में मान “Is” के बराबर होता है।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: सेल वैल्यू के आधार पर पंक्तियों को हटाने के लिए VBA का उपयोग करें

मान लीजिए कि हमारे पास निम्नलिखित डेटासेट है जिसमें विभिन्न बास्केटबॉल खिलाड़ियों के बारे में जानकारी है:

मान लीजिए कि हम डेटासेट से प्रत्येक पंक्ति को हटाना चाहते हैं जहां कॉन्फ़्रेंस कॉलम “पूर्व” के बराबर है।

ऐसा करने के लिए हम निम्नलिखित मैक्रो बना सकते हैं:

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

जब हम इस मैक्रो को चलाते हैं, तो हमें निम्नलिखित आउटपुट प्राप्त होता है:

ध्यान दें कि सभी पंक्तियाँ जहाँ कॉन्फ़्रेंस कॉलम में मान “पूर्व” था हटा दिया गया है।

ध्यान दें : एप्लिकेशन.डिस्प्लेअलर्ट्स=गलत लाइन वीबीए को दृश्यमान लाइनों को हटाने की प्रक्रिया को प्रदर्शित नहीं करने के लिए कहती है, जिससे प्रक्रिया तेज हो जाती है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि वीबीए में अन्य सामान्य कार्य कैसे करें:

वीबीए: कोशिकाओं पर सशर्त स्वरूपण कैसे लागू करें
वीबीए: रेंज में पंक्तियों की संख्या कैसे गिनें
वीबीए: विशिष्ट पाठ वाले कक्षों की गणना कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *