तालिका में सभी दो पंक्तियों को कैसे हटाएं (हेडर पहली पंक्ति है)


0

मेरे पास एक तालिका है जो किसी और व्यक्ति के साप्ताहिक में नए डेटा को चिपकाएगी। प्रत्येक सप्ताह चिपकाया जाने वाला डेटा पंक्तियों द्वारा आकार में बदल जाएगा, लेकिन स्तंभों में नहीं। मैंने प्रक्रिया को उस बिंदु तक स्वचालित कर दिया है जहां मैं पहली पंक्ति रखता हूं ताकि सूत्र नहीं निकाले जाएं। यह सब एक बटन के माध्यम से किया जाता है, जिसे मैंने कोड सौंपा है। अब मुझे तालिका की शेष पंक्तियों को हटाने की आवश्यकता है। यहाँ मेरे पास अब तक का कोड है जो काम करता है:

Sub ShrinkTable()
    Range("RDNPPD[[#Headers],[Follow Up by Corp Security]]").Select
    ActiveSheet.ListObjects("RDNPPD").ListRows(ActiveCell.Row - 
    1).Range.Select
    Range(Selection, Selection.End(xlDown)).Select    
End Sub

Sub DeleteRows()
    Selection.ListObject.ListRows(2).Delete
    Selection.ListObject.ListRows(2).Delete
    Selection.ListObject.ListRows(2).Delete
    Range("RDNPPD[[#Headers],[Follow Up by Corp Security]]").Select
End Sub

रे: सब डिलीटरो () - मैंने एक मैक्रो रिकॉर्ड किया और कोड की पहली पंक्ति डिलीट होने वाली टेबल में अधिक से अधिक पंक्तियों के लिए दोहराई गई, जो प्रत्येक उपयोग के साथ बदल जाएगी इस प्रकार काम नहीं करेगा। हटाई जाने वाली पहली पंक्ति हमेशा एक ही रहेगी: पंक्ति 5. यह अंतिम पंक्ति है जिसे कोड को गतिशील होने के लिए खाते की आवश्यकता है।

मैं गतिशील वातावरण के लिए चयन कैसे हटाऊं? बहुत धन्यवाद!



जवाबों:


0

यह डुप्लिकेट करता है कि आपकी रिकॉर्डिंग क्या करती है - तालिका की अंतिम पंक्ति को हटा दें जब तक कि केवल एक पंक्ति शेष न हो

यह बंद हो जाता है ScreenUpdatingऔर Calculationइसे तेजी से बनाने के लिए; अंत में यह उन्हें वापस चालू करता है


Option Explicit

Public Sub ShrinkTable()

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    With ThisWorkbook.Worksheets("Sheet3")              'Update Sheet Name
        If .ListObjects.Count > 0 Then
            With .ListObjects("RDNPPD")
                While .ListRows.Count > 1               'Delete last row until first
                    .ListRows(.ListRows.Count).Delete
                Wend
            End With
        End If
    End With

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

End Sub

इससे पहले

इससे पहले

उपरांत

उपरांत

Table( ListObject) संरचना


तालिका


धन्यवाद! मैंने दोनों की कोशिश की, लेकिन मुझे एक ही त्रुटि संदेश प्राप्त हो रहा है: श्रेणी वर्ग की विधि हटाएँ विफल। मेरे पास एक मॉड्यूल में कोड सेटअप है, इसलिए मैं एक बटन के लिए शीट के भीतर उस पर कॉल कर सकता हूं। क्या यह समस्या का कारण हो सकता है?
स्टेसी बुलिस

इसके अलावा, सोचा था कि शायद त्रुटि ऑटोफिल्टर के साथ जुड़ी थी इसलिए मैंने इसे बंद करने के लिए कोड लिखा था, लेकिन मैं अभी भी कोड के प्रत्येक उदाहरण लाइन पर त्रुटि प्राप्त कर रहा हूं।
स्टेसी बुलिस

मेरे पास स्प्रैडशीट में छिपी हुई वर्कशीट हैं, लेकिन जब कोड का यह भाग चलता है, तो इच्छित सक्रिय शीट पर कोई सुरक्षा नहीं होती है। मैंने आपके द्वारा दिए गए कोड से पहले मेरे प्रश्न में दिए गए कोड को चलाया। भले ही, मेरे कोड के साथ या उसके बिना, 'श्रेणी श्रेणी को हटाने की विधि विफल' का एक ही त्रुटि संदेश प्रकट होता है। मैंने अपना प्रश्न प्रस्तुत करने से पहले आपके समाधान की कोशिश की थी, लेकिन मुझे लगा कि शायद मैं कुछ गलत था। कुछ निश्चित नहीं कि यहाँ से कहाँ जाना है?
स्टेसी बुलिस

ठीक है, बस बदल दिया गया है .EntireRow.Delete to .EntireRow.Select और सभी लेकिन तालिका की पहली पंक्ति का चयन किया गया है। आगे क्या होगा?
स्टेसी बुलिस

मैं चयनित पंक्तियों को हटाने के लिए Ctrl + - (माइनस) को हिट करने के लिए उपयोगकर्ता के लिए एक संदेश बॉक्स जोड़ सकता हूं, लेकिन यदि संभव हो तो कोड को संभालना पसंद करेगा।
स्टेसी बुलिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.