मैं वीबीए कोड के इस बिट में प्रत्यक्ष सेल संदर्भों का उपयोग नहीं करना चाहता, क्योंकि इस "फॉर्म" की ये तीन कोशिकाएं चारों ओर स्थानांतरित हो जाएंगी। काम करने के लिए इंटरसेट टारगेट रेंज दृष्टिकोण पर नामांकित रेंज प्राप्त करने का सही तरीका नहीं समझ सकता।

गुगलिंग, मुझे सफलता नहीं मिली है (जाहिर है), इस प्रकार पहली पोस्ट। चीजों को बदलने की कोशिश की, यहां तक ​​​​कि उद्धरणों में यादृच्छिक रैपिंग, बिना वर्ग कोष्ठक के, .Name जोड़कर। उह। आज शुक्रवार है।

कहानी में रंग भरने के लिए,

  • E18 प्रारंभ दिनांक है
  • E19 टर्म (मो) है
  • E20 समाप्ति तिथि है

FYI करें, सेल परिवर्तन अच्छी तरह से चलाने के लिए कोड को ट्रिगर करता है। वही नामित श्रेणियां बाकी कोड में अच्छी तरह से काम करती हैं।

उम्मीद है
रेंज ("ई 18: ई 18, ई 1 9: ई 1 9, ई 20: ई 20") जैसा कुछ नीचे मेरे गैर-कामकाजी कोड स्निपेट में नामित श्रेणियों में बदल दिया गया है (जो डिज़ाइन द्वारा एकल सेल नामित असाइनमेंट हैं)।

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range([Term_End_Date], [Term_Duration__mo], [Term_Start_Date])) Is Nothing Then Exit Sub
'was If Intersect(Target, Range("E18:E20")) Is Nothing Then Exit Sub    
'<snip> rest works well

धन्यवाद!

1
MacGyverRick 28 जून 2019, 21:45

1 उत्तर

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

ये कोशिश करें

Dim rng As Range

Set rng = Union(Range("Term_End_Date"), Range("Term_Duration__mo"), _
                Range("Term_Start_Date"))

If Not Intersect(Target, rng) Is Nothing Then
    '~~> Do What you want
End If
0
Siddharth Rout 28 जून 2019, 22:05