สุ่มคำชี้แจงใน VBA
VBA Randomize statement เป็นคำสั่ง one-liner ง่ายๆที่เราเพิ่มก่อนใช้ฟังก์ชัน RND เมื่อใดก็ตามที่เปิดสมุดงานขึ้นมาใหม่คำสั่ง Randomize จะให้หมายเลข seed ใหม่แก่ฟังก์ชัน RND ขึ้นอยู่กับเวลาระบบของคอมพิวเตอร์
ก่อนที่ฉันจะพูดถึงคำสั่ง Randomize ฉันขอแนะนำให้คุณรู้จักกับฟังก์ชัน RND ง่ายๆกับ VBA
ในฐานะฟังก์ชันแผ่นงาน "RAND" ใน VBA "RND" ก็จะสร้างตัวเลขสุ่มที่มากกว่า 0 แต่น้อยกว่า 1
ตอนนี้มาดูไวยากรณ์ของฟังก์ชัน“ RND”
[Number]:เราสามารถส่งผ่านอาร์กิวเมนต์ได้สามวิธี
- หากเราส่งตัวเลขเป็น <0 มันจะสร้างตัวเลขสุ่มเหมือนเดิมทุกครั้ง
- หากเราส่งตัวเลขเป็น 0 มันจะทำซ้ำหมายเลขล่าสุดที่ให้มา
- ถ้าเราส่งตัวเลข> 0 มันจะให้ตัวเลขสุ่มที่แตกต่างกันเช่นหมายเลขสุ่มถัดไปในลำดับ
ตัวอย่าง
สำหรับตัวอย่างดูโค้ดด้านล่าง
รหัส:
Sub RND_Example () Debug พิมพ์ Rnd End Sub
เมื่อฉันเรียกใช้รหัสในหน้าต่างทันทีฉันสามารถเห็นหมายเลขด้านล่าง
ในทำนองเดียวกันเมื่อฉันรันโค้ดนี้อีก 3 ครั้งฉันจะเห็นตัวเลขด้านล่าง
ตอนนี้ฉันจะปิดสมุดงานแล้วเปิดใหม่
ตอนนี้ฉันจะกลับไปที่หน้าต่างแก้ไขภาพพื้นฐาน
ตอนนี้หน้าต่างทันทีว่างเปล่าและสะอาด
อีกครั้งฉันจะรันโค้ดสี่ครั้งและดูว่าตัวเลขที่เราจะได้รับในหน้าต่างทันทีคืออะไร
เราได้ตัวเลขเดียวกับที่เราได้ข้างบน
สิ่งนี้ไม่เหมือนตัวเลขสุ่มเพราะทุกครั้งที่เราเปิดไฟล์ขึ้นมาใหม่เรามักจะได้ตัวเลขเดิมตั้งแต่ต้น
ดังนั้นเราจะสร้างตัวเลขสุ่มได้อย่างไรโดยไม่คำนึงว่าสมุดงานจะเปิดขึ้นมาใหม่หรือไม่?
เราจำเป็นต้องใช้คำสั่ง“ Randomize”
วิธีใช้ VBA Randomize Statement
คุณสามารถดาวน์โหลด VBA Randomize Excel Template ได้ที่นี่ - VBA Randomize Excel Templateตัวอย่าง # 1
ในการรับตัวเลขสุ่มสิ่งที่เราต้องทำก็คือการเพิ่มหนึ่งซับง่ายๆ“ Randomize” ก่อนฟังก์ชัน RND
รหัส:
Sub Randomize_1 () Randomize Debug พิมพ์ Rnd End Sub
ตอนนี้ฉันจะรันโค้ด 4 ครั้งและดูว่าฉันได้อะไร
ได้สร้างตัวเลขข้างต้นในหน้าต่างท้องถิ่นของฉัน
ตอนนี้ฉันจะปิดไฟล์และเปิดไฟล์ใหม่อีกครั้ง
ตามปกติเราเริ่มต้นด้วยกระดานชนวนที่สะอาดในหน้าต่างพื้นฐานภาพ
ตอนนี้ฉันจะรันโค้ดอีกครั้งและดูว่าเราได้รับหมายเลขอะไรในครั้งนี้
ว้าว!!! คราวนี้เราได้ตัวเลขต่างกัน
เนื่องจากเราเพิ่มคำสั่ง Randomize ก่อนฟังก์ชัน RND เราจึงได้รับตัวเลขสุ่มที่แตกต่างกันทุกครั้งที่เราเปิดไฟล์
นี่ดูเหมือนสุ่มเลขไม่ใช่เหรอ ???
ตัวอย่าง # 2
สุ่มตัวเลขมากกว่าหนึ่ง
ดังที่เราได้เห็นฟังก์ชัน“ RND” สามารถสร้างตัวเลขได้ตั้งแต่ 0 ถึง 1 เท่านั้น แต่ในการสร้างตัวเลขที่มากกว่าหนึ่งตัวเลขสุ่มเราจำเป็นต้องใช้“ RANDOM BETWEEN” ซึ่งมีอยู่ในคลาสฟังก์ชันของแผ่นงาน
ดังนั้นในการสร้างตัวเลขสุ่มที่มากกว่าหนึ่งเราจำเป็นต้องใช้รหัสด้านล่าง
รหัส:
Sub Randomize_2 () Randomize Debug พิมพ์ Rnd * 100 End Sub
ตอนนี้ฉันจะรันโค้ดและดูสิ่งที่เราได้รับ
ด้วยวิธีนี้เราสามารถใช้คำสั่ง "สุ่ม" ใน VBA เพื่อสร้างตัวเลขสุ่มทุกครั้งที่เราเปิดไฟล์ excel ขึ้นมาใหม่