VBA RND फ़ंक्शन का उपयोग करके यादृच्छिक संख्या उत्पन्न करें

एक्सेल VBA रैंडम नंबर

Vba में यादृच्छिक संख्या उत्पन्न करने के लिए हमारे पास एक इनबिल्ट फंक्शन है जिसे RND कहा जाता है । यह केवल यादृच्छिक संख्या उत्पन्न करने के लिए एक तर्क लेता है और यह एक वैकल्पिक पैरामीटर भी है। यह यादृच्छिक संख्या बनाएगा जो 0 से अधिक और 1 से छोटा हो।

यह एक्सेल फ़ंक्शन "रैंड" के समान ही कार्य करता है। जैसा कि मैंने VBA में वर्कशीट फ़ंक्शन "RAND" में भी बताया था, हम यादृच्छिक संख्याओं को उत्पन्न कर सकते हैं जो 0 से अधिक हैं लेकिन 1 से कम हैं।

अब "RND" फ़ंक्शन के सिंटैक्स पर एक नज़र डालें।

(संख्या): हम तर्क को तीन तरीकों से पारित कर सकते हैं।

  • यदि हम संख्या को <0 के रूप में पास करते हैं, तो यह हर बार समान यादृच्छिक संख्या उत्पन्न करता रहता है।
  • यदि हम संख्या को 0 के रूप में पास करते हैं, तो यह सबसे हालिया संख्या दोहराएगा जो उसने दी है।
  • यदि हम संख्या> 0 पास करते हैं, तो यह आपको क्रम में अगले यादृच्छिक संख्या यानी अलग-अलग यादृच्छिक संख्याएँ देता रहता है।

VBA कोड का उपयोग करके यादृच्छिक संख्या कैसे उत्पन्न करें?

उदाहरण 1

अब हम "RND" फ़ंक्शन का उपयोग करने का सरल उदाहरण देखेंगे। अपने दम पर VBA कोड लिखने के लिए नीचे दिए गए चरणों का पालन करें।

चरण 1: चर को VBA में "पूर्णांक" के रूप में घोषित करें

कोड:

सब Rnd_Example1 () डिम के अस इंटेगर एंड सब

चरण 2: अब " RND " फ़ंक्शन के माध्यम से चर "k" के लिए मान निर्दिष्ट करें ।

कोड:

सब Rnd_Example1 () डिम के अस इंटेगर K = Rnd () एंड सब

चरण 3: संदेश बॉक्स में चर "k" द्वारा लौटाया गया मान दिखाएँ ।

कोड:

सब Rnd_Example1 () डिम K अस इंटेगर K = Rnd () MsgBox K एंड सब

अब एक्सेल मैक्रो को चलाएं और देखें कि परिणाम क्या है।

देखो क्या हो गया है।

यह परिणाम को 1 के रूप में दिखा रहा है जहां "RND" फ़ंक्शन केवल उन संख्याओं को वापस कर सकता है जो शून्य से अधिक लेकिन 1 से कम हैं।

आप सोच रहे होंगे कि यहां क्या गलत है।

यहाँ गलत बात यह है कि जिस प्रकार का डेटा हमने चर "k" को सौंपा है।

यदि आप हमारे द्वारा घोषित चर को देखते हैं, तो हमने डेटा प्रकार को पूर्णांक के रूप में निर्दिष्ट किया है। चूँकि हमने वेरिएबल को इंटेगर के रूप में सौंपा है, यह केवल -32768 से 32767 के बीच पूरे नंबर दिखा सकता है।

जब भी RND दशमलव संख्या लौटाता है, VBA दशमलव संख्या को निकटतम पूर्णांक में परिवर्तित करता है, अर्थात, 1।

इसलिए, सूत्र को ठीक से काम करने के लिए, चर को " डबल " घोषित करें ।

"डबल" VBA में डेटा प्रकार है जो दशमलव मानों को धारण कर सकता है।

कोड:

सब Rnd_Example1 () मंद K के रूप में डबल K = Rnd () MsgBox K End Sub

अब कोड और देखें कि परिणाम क्या है।

ठीक पर क्लिक करें और एक बार और चलाएं और देखें कि परिणाम क्या है।

इस बार हमें एक अलग परिणाम मिला। चूंकि "RND" प्रकृति में एक अस्थिर कार्य है, इसलिए यह हर बार कोड को निष्पादित करने के लिए अलग-अलग परिणामों को पुन: पेश करता है।

उदाहरण # 2 - हर बार एक ही यादृच्छिक संख्या प्राप्त करें

जैसा कि हमने पिछले उदाहरण ई में देखा है, "आरएनडी" फ़ंक्शन हर बार जब हम कोड निष्पादित करते हैं, तो परिणाम पुन: पेश करता है। एक ही यादृच्छिक संख्या प्राप्त करने के लिए, बार-बार, हमें तर्क को शून्य के रूप में पारित करने की आवश्यकता है।

कोड:

सब Rnd_Example2 () डिम K अस डबल के = Rnd (0) MsgBox K End Sub

जब हम कोड निष्पादित करते हैं तो यह बार-बार एक ही नंबर का उत्पादन करेगा।

उदाहरण # 3 - पूरे यादृच्छिक संख्या उत्पन्न करें

हम अन्य VBA फ़ंक्शंस या अन्य इनपुट नंबरों का उपयोग करके पूरे नंबर भी उत्पन्न कर सकते हैं। उदाहरण के लिए, नीचे दिए गए कोड को देखें।

कोड:

सब Rnd_Example3 () डिम K अस डबल के = 1 + रैंड * 100 MsgBox K एंड सब

हर बार जब हम कोड निष्पादित करते हैं तो यह कोड दशमलव बिंदुओं के साथ यादृच्छिक पूरे नंबर उत्पन्न करेगा।

यदि आप दशमलव अंकों के बिना पूरी संख्या देख रहे हैं, तो हम नीचे दिए गए कोड का उपयोग कर सकते हैं।

कोड:

सब Rnd_Example3 () डिम K अस डबल के = सेंट (1 + रैंड * 100) MsgBox K एंड सब

यह 1 से 100 तक पूरे नंबर जेनरेट करता रहेगा।

दिलचस्प लेख...