किसी Range
वैरिएबल को डिक्लेयर करें, और उसे असाइन करें Columns("C:C")
जैसे Set myRange = ActiveSheet.Columns("C:C")
(यदि वह स्टैण्डर्ड मॉड्यूल में है) या Set myRange = Me.Columns("C:C")
(यदि वह वर्कशीट मॉड्यूल में है)।
Dim myRange As Range
Set myRange = Columns("C:C")
myRange.Formula = "..."
फिर जब आप डॉट को टाइप करते हैं myRange.
, तो आपको उपलब्ध सदस्यों, पैरामीटर-क्विकइन्फो टूलटिप्स और संकलन-टाइम सत्यापन को सूचीबद्ध करने के लिए एक ड्रॉपडाउन मिलेगा। जिस कारण से आपके कोड को संकलित करने और चलाने की अनुमति दी गई थी (चाहे Option Explicit
वह निर्दिष्ट हो या नहीं) Columns
एक Range
वस्तु लौटाता है , लेकिन इसका कोई पैरामीटर नहीं है - ("C:C")
तर्क वास्तव में Range.[_Default]
संपत्ति को प्रदान किए जाते हैं, जो एक रिटर्न देता है Variant
। कोई भी सदस्य इसके लिए जंजीर कॉल करता है, इसलिए इसे केवल रन-टाइम पर हल किया जाता है, अर्थात कोई भी टाइपो संकलन को नहीं रोकेगा, और रन-टाइम पर त्रुटि 438 फेंक देगा।
एक Range
चर घोषित करके , आप "टाइप-कास्टिंग" कर रहे हैं जो कि Variant
एक में है Range
, और वहाँ से कंपाइलर यह सत्यापित करने में सक्षम है कि कौन से सदस्य मौजूद हैं, और कंपाइल-टाइम त्रुटियों को टाइपो दिया गया है।