VBA สุ่ม | จะใช้ Randomize Statement ได้อย่างไร?

สุ่มคำชี้แจงใน 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 ขึ้นมาใหม่