मेरे पास निम्न कोड है जो मैंने पाया है कि यदि वर्कशीट में कोई बदलाव किया जाता है तो पिवट टेबल को रीफ्रेश कर देगा।

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
  ActiveSheet.PivotTables("PromoList").RefreshTable
Application.EnableEvents = True

End Sub

समस्या यह है कि वर्कशीट में कई अन्य फ़ील्ड हैं जिन्हें मैं संपादित कर रहा हूं, लेकिन क्योंकि कोड पूरे वर्कशीट पर लागू होता है, जब मैं कहीं भी कोई बदलाव करता हूं, तो मैं त्रुटियों को पूर्ववत करने की क्षमता खो देता हूं जो मुझे थोड़ा सा वापस ला सकता है।

पिवट टेबल के लिए डेटा सिर्फ एक कॉलम (ए) में समाहित है।

क्या कॉलम ए को संदर्भित करने के लिए कोड को अपडेट करने का कोई तरीका है, इसलिए मैं पूर्ववत नहीं खोता? क्या मैं इसे और आगे ले जा सकता हूं और कॉलम ए में एक श्रेणी निर्दिष्ट कर सकता हूं?

0
GigaFluxx 15 जून 2020, 20:42

1 उत्तर

सबसे बढ़िया उत्तर

यह रिफ्रेश को तभी ट्रिगर करेगा जब आपने कॉलम A in में कहीं भी कोई बदलाव किया हो

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error GoTo EH

    Application.EnableEvents = False

    If Target.Column = 1 Then
        ActiveSheet.PivotTables("PromoList").RefreshTable
    End If

EH:
    Application.EnableEvents = True

End Sub
1
Storax 15 जून 2020, 17:50