कॉलम वीबीए में कोशिकाओं का यादृच्छिक चयन

इस पर पूरी तरह उलझन में: मेरे पास एक शीट है जहां मैं यादृच्छिक रूप से किसी दिए गए कॉलम से सेल का चयन करना चाहता हूं और उसके बाद इसे एक नए मान के साथ पॉप्युलेट करना चाहता हूं। मैं भी यादृच्छिक संख्या के अनुक्रम को दोहराने में सक्षम होना चाहता हूं। समस्या यह है कि, मुझे शून्य विचार नहीं है कि प्रोग्राम न्यू क्वांटिटी की गणना कैसे करता है या प्रोग्राम उस सेल को क्यों चुनता है जो यह करता है। ऐसा लगता है कि यादृच्छिक संख्याओं का उपयोग करना है जो मैं घड़ी का उपयोग करके देखता हूं। मैंने कई बार इसके माध्यम से कदम बढ़ाया है और मेरी गणना हमेशा नई क्वांटिटी या सेल का चयन करने में बंद है। नीचे कोड - मैंने $$ n $$ (एन = 1 या 2 के साथ लाइन 1 और लाइन 2 के साथ लाइन शुरू करके चिंता का कोड नोट किया है)।

क्या हो रहा है इसके कुछ अवलोकन यहां दिए गए हैं: 1. आरएनडी() कोड के माध्यम से कदम उठाने पर प्रत्येक पंक्ति पर एक नया यादृच्छिक संख्या बनाता है - भले ही उनका आरएनडी() कथन है या नहीं। 2. यहां परिवर्तनीय मानों का एक अनुक्रम है क्योंकि मैं चिंता के कोड की लाइनों (जैसे $$ 1 $$ और $$ 2 $$) के माध्यम से कदम उठाता हूं।

पहली पंक्ति में कदम उठाने से पहले: आरएनडी() = .980176, न्यूक्वैंटिटी = 428, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 51।

पहली पंक्ति में: आरएनडी() = .764067, न्यूक्वैंटिटी = 428, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 16।

पहली पंक्ति के बाद: आरएनडी() = .442, न्यूक्वैंटिटी = 335, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 23।


दूसरी पंक्ति में कदम उठाने से पहले: आरएनडी() = .980176, न्यूक्वैंटिटी = 335, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 4 9

दूसरी पंक्ति में: आरएनडी() = .9688, न्यूक्वैंटिटी = 335, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 17।

पहली पंक्ति के बाद: आरएनडी() = .203, न्यूक्वैंटिटी = 367, इंट ((काउंटर कैल्स - 1) * आरएनडी() + 2) = 3 9।

मुझे किसी भी पत्र को डेटा और मैक्रो के साथ भेजने में खुशी होगी।

किसी भी मदद के लिए धन्यवाद।

Function RandomizeData(stdID As Long)
'
Dim CountCells As Integer       ' number of cells in a column
Const RandCount As Integer = 5  ' number of cells in each table to randomly change
Dim NewQuantity As Integer      ' new randomly determined quantity
Dim NewPrice As Single          ' new randomly determined price
Const LowQuantity = 5           ' Lowest quantity to be randomly created
Const HighQuantity = 500        ' highest quantity to be randomly created
Const LowPrice As Single = 0.5  ' lowest percent change to current price
Const HighPrice As Single = 1.2 ' highest percent change to current price
Dim ExistingPrice As Variant     ' Set parameters for changing quantity and price
Dim RedID As Long               ' RedID number
'
' Set parameters for changing quantity and price
'
' Make random changes to the quantity In the order quantities
RedID = stdID
Rnd (-4)
Randomize (RedID)

Worksheets("Order_Detail").Select
CountCells = WorksheetFunction.Count(Range("C2:C59"))

'Determine random quantity change to a random cell in Order Details Quantity
For j = 1 To RandCount
$$1$$    NewQuantity = Int((HighQuantity - LowQuantity + 1) * Rnd() + LowQuantity)
$$2$$    Cells(Int((CountCells - 1) * Rnd() + 2), "C").Value = NewQuantity
Next j
'
End Function
0
यह एक होमवर्क असाइनमेंट की तरह लगता है ...
जोड़ा लेखक Alan Waage, स्रोत
धन्यवाद टिम - मैं ऐसा करूँगा और देख सकता हूं कि मैं समझ सकता हूं या नहीं। एलन - क्लोज़ - यह होमवर्क असाइनमेंट के लिए ग्रेड शीट है। कक्षा में छात्रों की संख्या के साथ - मुझे डेटासेट के ग्रेडिंग और यादृच्छिकरण को स्वचालित करना होगा।
जोड़ा लेखक user2016566, स्रोत
टिप्पणी में कोई फ़ाइल कैसे जोड़ता है - माफ करना मैं हमेशा नौसिखिया श्रेणी में पड़ता हूं।
जोड़ा लेखक user2016566, स्रोत
धन्यवाद पनीर। मुझे एक्सेल ड्राइविंग करने के लिए एक्सेल फ़ाइल का लिंक यहां दिया गया है। मैं अभी इस पर फिर से काम कर रहा हूं। dl.dropboxusercontent.com/u/19837970/Worksheet.xlsm
जोड़ा लेखक user2016566, स्रोत
मैंने घड़ी में देखने के लिए RND() मानों को कैप्चर करने के लिए चर में जोड़ा। यह चाल है और ऐसा प्रतीत होता है कि मैक्रो सही ढंग से काम कर रहा है। अब मुझे अपनी बड़ी समस्या कहां कम करने में सक्षम होना चाहिए। आपकी रुचि और सहायता के लिए आप सभी को धन्यवाद।
जोड़ा लेखक user2016566, स्रोत
वास्तव में आपके प्रश्न को समझ नहीं रहा (!) मुझे आश्चर्य है कि एक संशोधित दृष्टिकोण आसान होगा या नहीं। यही है, केवल एक (या अधिक?) अन्य सूचियों को सॉर्ट करने के लिए यादृच्छिक संख्याओं का उपयोग करें (जो मूल रूप से यादृच्छिक संख्या के रूप में जेनरेट किए गए मान हो सकते हैं)। फिर, सहारा लेने तक, आपके पास अनुक्रम/एस का रिकॉर्ड होगा।
जोड़ा लेखक pnuts, स्रोत
आप नहीं कर सकते - लेकिन आप इसे होस्ट करने के लिए किसी साइट (लॉगिन/पासवर्ड आवश्यकता के बिना) लिंक जोड़ सकते हैं।
जोड़ा लेखक pnuts, स्रोत
बस RND() पर एक घड़ी जोड़ने का कार्य इसे निष्पादित करने और एक नई संख्या उत्पन्न करने का कारण बन जाएगा। उदाहरण के लिए - ब्रेकपॉइंट पर रुकने पर एक ही आरएनडी() में कुछ घड़ियों को जोड़ने का प्रयास करें: प्रत्येक घड़ी आपको एक अलग संख्या देगी। यदि आप इसके बजाय एक चर के लिए Rnd() का आउटपुट निर्दिष्ट करते हैं और उस चर पर एक घड़ी डालते हैं तो आपको वह समस्या नहीं होगी।
जोड़ा लेखक Tim Williams, स्रोत