2011-02-13 12 views
6

में वैश्विक चर शुरू करना एक्सेल 2003 में, मैं वैश्विक चर घोषित कैसे कर सकता हूं और उन्हें केवल एक बार शुरू कर सकता हूं, यानी जब कार्यपुस्तिका खोली जाती है?वीबीए

मेरे पास कुछ पैरामीटर हैं जो कुछ मैक्रोज़ द्वारा उपयोग किए जाते हैं: फ़ाइलों को इनपुट करने के पथ, मूल रूप से। फिलहाल, मेरे कोड इस तरह दिखता है:,

global path1, path2 as string 

sub initPaths 
    path1 = 'path\to\file1' 
    path2 = 'path\to\file2' 
end sub 

तो जब भी मैं एक सबरूटीन या समारोह में file1 या करें 2 उपयोग करने की आवश्यकता है, मैं initPaths के लिए एक कॉल डालें। लेकिन यह बल्कि सुरुचिपूर्ण लगता है; मैं बार-बार की बजाय केवल एक बार पथ सेट करने में सक्षम होना चाहता हूं।

+2

मुझे लगता है कि आपने कॉन्स्टेंट्स (और यह एक अच्छा है) के बारे में स्टीव जोर्जेंसन के जवाब को पहले से ही स्वीकार कर लिया है, लेकिन * यह भी ध्यान दें कि आपके मूल कोड में केवल 'path2' एक स्ट्रिंग होगा -'path1' एक संस्करण होगा । एक ही पंक्ति पर दो टाइप किए गए चर घोषित करने के लिए आपको प्रत्येक के लिए प्रकार देने की आवश्यकता है, इस प्रकार: 'वैश्विक पथ 1 स्ट्रिंग के रूप में, पथ 2 स्ट्रिंग के रूप में'। – RolandTumble

+0

मुझे विश्वास नहीं है कि मैंने उसे नोटिस नहीं किया है। हाँ - उसने क्या कहा

उत्तर

13

आपके उदाहरण से, ऐसा लगता है कि आप क्या चाहते हैं स्थिरांक नहीं, वैश्विक चर नहीं।

Public Const PATH1 = "path\to\file1" 
Public Const PATH2 = "path\to\file2" 

तुम सच मान निर्धारित करने के लिए कोड का उपयोग करने के लिए, लेकिन उन्हें केवल एक बार प्रारंभ करना चाहते हैं की जरूरत है, तो आप आलसी-आरंभीकरण उपयोग कर सकते हैं ...

Private mstrPath1 As String 
Private mstrPath2 As String 

Public Function Path1() As String 
    if mstrPath1 = vbNullString Then 
     ' Initialize mstrPath1 value here. 
    End If 
    Path1 = mstrPath1 
End Function 

Public Function Path2() As String 
    if mstrPath2 = vbNullString Then 
     ' Initialize mstrPath2 value here. 
    End If 
    Path2 = mstrPath2 
End Function 

यहाँ अच्छी बात यह है कि है यदि आपका कोड कभी भी रीसेट हो जाता है, तो अगली बार जब आप उन्हें अपने संबंधित कार्यों के माध्यम से एक्सेस करते हैं तो मूल्यों को फिर से शुरू किया जाता है।

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

+0

आह, धन्यवाद! मैं पहले स्थिरांक से अवगत नहीं था। –