से मूल्य प्रकार के साथ वीबीए में काम नहीं कर रहा है, अब तक मैं हमेशा ByRef
सफलतापूर्वक उपयोग करता हूं। मुझे कक्षा-ऑब्जेक्ट से Double
को संशोधित करने के लिए फ़ंक्शन की आवश्यकता है। उदाहरण के लिए, निम्नलिखित कार्यक्रम पर विचार करें।ByRef कक्षा
Class1.cls:
Public d As Double
Sub Test()
Dim c As Class1, d As Double
Set c = New Class1
c.d = 5
d = 5
ChangeVar c.d
ChangeVar d
Debug.Print c.d
Debug.Print d
End Sub
Sub ChangeVar(ByRef d As Double)
d = 10
End Sub
मेरे आश्चर्य के लिए, ऊपर के उदाहरण उत्पादन
5
10
किसी करेगा?
हम में तब्दील हो जाता है, धन्यवाद! अब, मैं इसे कैसे ठीक कर सकता हूं? दुर्भाग्यवश, मुझे मूल्य को संशोधित करने के लिए अभी भी उस फ़ंक्शन की आवश्यकता है। –
आप 'temp = cd: ChangeVar temp: cd = temp' या '.changeD (incrementor)' विधि या' उप चेंजवायर (कक्षा 1 के रूप में cls) का खुलासा कर सकते हैं: cls.d = cls.d + 1' –
तो, मैं मान लीजिए कि केवल ByRef और मेरे PublicVariable का उपयोग करना संभव नहीं है? –