एक्सेल सेल में बदलाव होने पर मैक्रो - एक्सेल टिप्स

विषय - सूची

कई पाठकों ने ऐसे प्रश्न पूछे हैं जिनके लिए एक्सेल स्प्रेडशीट में हर बार एक मूल्य परिवर्तन के लिए एक्सेल को मैक्रो के एक खंड को चलाने की आवश्यकता होती है।

सबसे पहले, केवल XL97 में उपलब्ध सुधरी हुई विधि: एक्सेल 97 में कुछ नए ईवेंट हैंडलर हैं जो सेल में बदलाव होने पर मैक्रो को हर बार चलाने की अनुमति देते हैं।

मान लीजिए कि कभी भी कॉलम A में 100 से अधिक का मान दर्ज किया जाता है, तो आप लाल होने के लिए इसके आगे वाले कक्ष को प्रारूपित करना चाहते हैं।

  • विज़ुअल बेसिक एडिट (उपकरण> मैक्रो> विज़ुअल बेसिक एडिटर) खोलें
  • बाईं विंडो में, शीट 1 पर राइट क्लिक करें और देखें कोड चुनें।
  • Book1 - Sheet1 कोड संवाद बॉक्स के शीर्ष पर, दो ड्रॉपडाउन हैं। बाएं ड्रॉपडाउन से कार्यपत्रक का चयन करें। सही ड्रॉपडाउन से, चेंज सेलेक्ट करें।
  • कोड की निम्नलिखित पंक्तियाँ दर्ज करें:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then ThisRow = Target.Row If Target.Value> 100 Then Range("B" & ThisRow).Interior.ColorIndex = 3 Else Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone End If End If End Sub

किसी भी समय एक सेल में एक मूल्य बदल जाता है, यह मैक्रो चलाया जाएगा। चर लक्ष्य आपको बताएगा कि कौन सी सेल और सेल का नया मूल्य है। हैरानी की बात यह है कि इस पद्धति का उपयोग करने से प्रक्रिया धीमा नहीं होती है।

ध्यान दें कि जब तक वर्कशीट खुली रहती है या जब तक आप उसमें निम्न पंक्ति के साथ मैक्रो नहीं चलाते तब तक मैक्रो एक्टिव रहेगा।

Application.EnableEvents = False

/ p> Excel 95 / 7.0 में: आपको OnEntry विधि का उपयोग करने की आवश्यकता है। आप एक मैक्रो निर्दिष्ट करते हैं जिसे आप किसी भी मूल्य में प्रवेश करने के बाद चलाना चाहते हैं। इस स्थिति में, चर Application.Caller में वह पता और मान होता है जो बदल गया हो। एक नए मॉड्यूल में निम्नलिखित दर्ज करें:

Sub AutoOpen() Worksheets("Sheet1").OnEntry = "CheckIt" End Sub Sub CheckIt() If Application.Caller.Column = 1 Then ThisRow = Application.Caller.Row If Application.Caller.Value> 100 Then Range("B" & ThisRow).Interior.ColorIndex = 3 Else Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone End If End If End Sub

जब तक आप निम्नलिखित कोड के साथ एक मैक्रो नहीं चलाते हैं, तब तक OnEntry जाँच सक्रिय रहेगी:

Worksheets("Sheet1").OnEntry = False

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