मिशेल पूछती है,
मुझे लगता है कि मैं एक परिपत्र संदर्भ के साथ सही रास्ते पर हूं। यहाँ मेरी समस्या है। मेरे पास दो सेल हैं,
A1=5
औरB1=5
। मैं क्या करना चाहता हूं बी 1 याद 5 है, और फिर मैं A1 में एक नया मान जोड़ना चाहता हूं, A1 को अब बराबर कहता है 10. क्या मेरे पास B1 फॉर्मूला हो सकता है जो 5 को याद करता है, लेकिन 10 भी जोड़ता है? तो अबB1=15
?
आमतौर पर, परिपत्र संदर्भ एक बुरी बात है, लेकिन कभी-कभी उनका उपयोग हमारे लाभ के लिए किया जा सकता है। यहाँ गैर-स्थूल तरीका है जो आप करना चाहते हैं। यह केवल कुछ विशेष परिस्थितियों में काम करेगा।
- एक्सेल मेनू से, टूल्स> विकल्प चुनें।
- गणना टैब पर जाएं। Iterations के बॉक्स को चेक करें। अधिकतम Iterations को 1 में बदलें।
- विकल्प संवाद बॉक्स बंद करने के लिए ठीक क्लिक करें।
- कक्ष A1 में 5 दर्ज करें।
- सेल B1 में 0 दर्ज करें
=A1+B1
सेल B1 में दर्ज करें- अब, जैसे ही आप A1 में नए मान दर्ज करते हैं, B1 में प्रविष्टि पुराने कुल को याद करेगी और A1 से मान जोड़ेगी।
यहाँ बड़ी सीमा है। आप शीट पर कहीं भी कोई भी मान दर्ज नहीं कर सकते हैं! किसी भी समय जब आप एक मान दर्ज करते हैं या शीट पुनर्गणना होती है, तो A1 में मान को B1 में मान में जोड़ दिया जाएगा। इस प्रकार, F9 को कई बार झुकाकर, आप प्रत्येक F9 के लिए B1 को 5 से बढ़ाकर देखेंगे।
ऐसा करने का सुरक्षित तरीका थोड़ा ईवेंट हैंडलर मैक्रो है। आपको इस कोड को Sheet1 के लिए कोड फलक में जोड़ना होगा (यह मानते हुए कि आप Sheet1 पर काम कर रहे हैं)। ईवेंट हैंडलर कोड इस प्रकार होगा:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = “$A$1” Then Application.EnableEvents = False Range(“B1”).Value = Range(“B1”).Value + Target.Value Application.EnableEvents = True End If End Sub
इस बिट कोड को किसी भी समय चलाया जाता है जब शीट पर सेल बदल जाती है। लक्ष्य एक विशेष वस्तु चर है जो बताता है कि किस सेल को बदल दिया गया था। इवेंट हैंडलर यह देखने के लिए जाँच करता है कि कौन सी सेल अभी बदली गई थी। यदि कक्ष A1 था, तो यह A1 से B1 में मान जोड़ देगा। हमें B1 बदलते समय ईवेंट हैंडलर को बंद करना होगा ताकि ईवेंट हैंडलर खुद को फिर से न बुलाए।