สารบัญ
บทความนี้แสดงตัวอย่าง 4 ตัวอย่างของ ตัวสร้างตัวเลขสุ่ม โดยไม่ซ้ำกันโดยใช้ VBA ใน Excel ที่นี่เราจะใช้ฟังก์ชัน Rnd ในตัวของ Excel เพื่อกำหนดค่ารหัสของเรา มาดูตัวอย่างเพื่อเรียนรู้เทคนิคในการสร้างตัวเลขสุ่มที่ไม่ซ้ำกัน
ดาวน์โหลดคู่มือแบบฝึกหัด
ดาวน์โหลดแบบฝึกหัดแบบฝึกหัดนี้เพื่อทำแบบฝึกหัดขณะที่คุณกำลังอ่านบทความนี้
ตัวสร้างตัวเลขสุ่มที่ไม่มีค่าซ้ำกัน.xlsm
4 ตัวอย่างตัวสร้างตัวเลขสุ่มที่ไม่มีค่าซ้ำใน Excel VBA
เขียนโค้ดใน Visual Basic Editor
ในการ สร้างตัวเลขสุ่มที่ไม่มีเลขซ้ำกัน เราจำเป็นต้อง เปิด และ เขียน VBA รหัส ใน ตัวแก้ไขวิชวลเบสิค ทำตาม ขั้นตอน เพื่อ เปิด ตัวแก้ไข วิชวลเบสิค และเขียนโค้ดที่นั่น
- ไปที่ นักพัฒนา แท็บจาก Excel Ribbon .
- คลิก ตัวเลือก Visual Basic
- ในหน้าต่าง Visual Basic For Applications ให้คลิก แทรกแบบเลื่อนลง เพื่อ เลือก โมดูลใหม่ ตัวเลือก
ตอนนี้ใส่ โค้ด ของคุณใน ตัวแก้ไขโค้ดภาพ และ กด F5 เพื่อ เรียกใช้ มัน
1. การใช้ฟังก์ชัน VBA Rnd เพื่อสร้างตัวเลขสุ่มที่ไม่มีค่าซ้ำ
ใช้ฟังก์ชัน Rnd ใน Excel VBA ถึง สร้างตัวเลขสุ่ม ที่ ระหว่าง 0 และ 1 เฉพาะตัว
งาน : สร้างตัวเลขสุ่ม 10 ตัว ระหว่าง 0 และ 1 ใน เซลล์ A1:A10
โค้ด : แทรก โค้ด ต่อไปนี้ ใน ตัวแก้ไข Visual Basic แล้วกด F5 ถึง เรียกใช้ it.
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber) >= 1 randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Loop Rng.Value = randomNumber Next End Sub
เอาต์พุต : ภาพหน้าจอด้านบนแสดง 10 หมายเลขสุ่มที่ไม่ซ้ำกัน ในช่วง 0 และ 1
คำอธิบายโค้ด:
ในโค้ดนี้ เราใช้ฟังก์ชัน Rnd ถึง แทรกตัวเลขสุ่ม ใน ช่วงเซลล์ A1:A10 ก่อน แทรก a ตัวเลขใหม่ เราใช้ ทำในขณะที่วนซ้ำ เพื่อ ดู สำหรับ ตัวเลข ใน ช่วงเซลล์ที่กำหนดไว้ล่วงหน้า (A1:A10) ไม่ว่าจะ มีอยู่แล้ว หรือ ไม่ใช่ ในการตรวจสอบ การมีอยู่ ของ ตัวเลข ใน ช่วงเซลล์ แต่ละครั้ง เราได้กำหนดค่ารหัสด้วย ฟังก์ชัน COUNTIF ฟังก์ชันนี้ กาเครื่องหมาย a ตัวเลขสุ่มใหม่ ใน รายการ ของ ตัวเลขที่มีอยู่แล้วก่อนที่จะแทรก
อ่านเพิ่มเติม : สูตร Excel สำหรับสร้างตัวเลขสุ่ม (5 ตัวอย่าง)
2. ตัวสร้างตัวเลขสุ่มสำหรับขอบเขตล่างและขอบเขตบนที่กำหนดโดยไม่มีค่าซ้ำ
หากต้องการ สร้างตัวเลขสุ่ม ภายใน ช่วงที่กำหนด เราจำเป็นต้อง ตั้งค่า ขอบเขตล่าง และ ขอบเขตบน ในโค้ด VBA ของเรา สำหรับข้อมูล ขอบล่าง คือ ตัวเลขต่ำสุด และ ขอบบน คือ ตัวเลขสูงสุด ในช่วง สำหรับตัวสร้างตัวเลขสุ่ม เราสามารถใช้ สูตรต่อไปนี้ ในโค้ดของเรา
(บน – ขอบล่าง + 1) * Rnd + ขอบล่าง
2.1 สุ่ม ตัวสร้างตัวเลข- ทศนิยม
งาน : สร้างตัวเลขสุ่ม 10 ตัว ระหว่าง 10 และ 20 ใน เซลล์ A1:A10
โค้ด : แทรก โค้ด ต่อไปนี้ ใน ตัวแก้ไข Visual Basic แล้วกด F5 เพื่อ เรียกใช้ it.
9912
เอาต์พุต : ภาพหน้าจอด้านบนแสดง 10 หมายเลขสุ่มที่ไม่ซ้ำกัน ในช่วง 1 และ 10
2.2 Random Number Generator- Integer
ในภาพประกอบนี้ เราจะใช้ ฟังก์ชัน VBA Int เพื่อ ลบ ส่วน เศษส่วน ออกจาก ตัวเลขสุ่ม .
งาน : สร้างตัวเลขจำนวนเต็มแบบสุ่ม 20 ตัวเลข ระหว่าง 1 และ 20 ใน เซลล์ A1:B10
โค้ด : แทรก โค้ด ต่อไปนี้ ใน ตัวแก้ไข Visual Basic แล้วกด F5 ถึง เรียกใช้ it.
6040
เอาต์พุต : ภาพหน้าจอด้านบนแสดง 20 หมายเลขจำนวนเต็มแบบสุ่มที่ไม่ซ้ำกัน ในช่วง ของ 1 และ 20
อ่านเพิ่มเติม: เครื่องสร้างตัวเลขสุ่มใน Excel ที่ไม่มีการทำซ้ำ (9 วิธี)
การอ่านที่คล้ายกัน
- ตัวสร้างตัวเลขสุ่มพร้อมเครื่องมือวิเคราะห์ข้อมูลและฟังก์ชันใน Excel
- วิธีการ สร้างข้อมูลแบบสุ่มใน Excel (9วิธีง่ายๆ)
- เครื่องสร้างตัวเลขสุ่ม 5 หลักใน Excel (7 ตัวอย่าง)
- เครื่องสร้างตัวเลขสุ่ม 4 หลักใน Excel (8 ตัวอย่าง)
- สร้างตัวเลขสุ่มจากรายการใน Excel (4 วิธี)
3. ระบุตำแหน่งทศนิยมสำหรับตัวสร้างตัวเลขสุ่มที่ไม่ซ้ำใน Excel VBA
เราสามารถใช้ ฟังก์ชัน Round ในโค้ดของเราเพื่อ ระบุ จำนวน ของ ตำแหน่งทศนิยม ใน จำนวนเฉพาะที่สร้างขึ้นแบบสุ่ม ไวยากรณ์ ของฟังก์ชัน is-
Round(expression, [numdecimalplaces])
เราจำเป็นต้อง ระบุ the อาร์กิวเมนต์ที่ 2 ตาม ข้อกำหนด ของเรา
งาน : สร้างตัวเลขสุ่ม 20 ตัวโดยมีทศนิยม 2 ตำแหน่ง ระหว่าง 1 และ 20 ใน เซลล์ A1:B10
โค้ด : แทรก โค้ด ต่อไปนี้ ใน ตัวแก้ไข Visual Basic แล้วกด F5 ถึง เรียกใช้ it.
7313
เอาต์พุต : ภาพหน้าจอด้านบนแสดงตัวเลขจำนวนเต็มสุ่มที่ไม่ซ้ำกัน 20 รายการพร้อมด้วย ทศนิยม 2 ตำแหน่ง ในช่วง 1 และ 20
อ่านเพิ่มเติม: สร้างตัวเลขสุ่มใน Excel ด้วยทศนิยม (3 วิธี)
4. พัฒนา Userform สำหรับ Random Number Generator โดยไม่มีรายการซ้ำใน Excel VBA
ในภาพประกอบนี้ เราจะแสดงวิธีใช้ UserForm ใน Excel VBA ถึง สร้างตัวเลขสุ่ม โดยที่ ไม่มีการซ้ำกัน .
งาน: สร้างตัวเลขสุ่ม 20 ตัว ในช่วงเซลล์ A1:B10 โดยใช้ ฟอร์มผู้ใช้ พร้อมกับ ค่าอินพุต (i) ขอบเขตล่าง (ii) บน (iii) จำนวนตำแหน่งทศนิยม
สร้าง UserForm:
ทำตามขั้นตอนด้านล่างเพื่อสร้าง UserForm ด้วย ช่องป้อนข้อมูลที่ต้องการ .
- ไปที่แท็บ นักพัฒนา จาก Excel Ribbon .
- คลิก ปุ่ม วิชวล ตัวเลือกพื้นฐาน
- ในหน้าต่าง Visual Basic For Applications คลิกเมนูแบบเลื่อนลง แทรก ถึง เลือก ตัวเลือก ฟอร์มผู้ใช้
- ใน ฟอร์มผู้ใช้ ให้เพิ่ม label .
- คำอธิบาย label เป็น LowerBound ในคุณสมบัติ
<3
- เพิ่ม สอง อีก ป้ายกำกับ ชื่อ กลุ่มบน และ จุดทศนิยม
- ตอนนี้เพิ่ม สามกล่องข้อความ ใน ฟอร์มผู้ใช้
- ในขั้นตอนนี้ เพิ่ม a CommandButton และตั้งชื่อว่า สร้าง
- ตอนนี้ ดับเบิลคลิก ปุ่ม ปุ่มคำสั่ง แล้วใส่ โค้ด ต่อไปนี้ใน ตัวแก้ไขโค้ด
4794
- กด F5 เพื่อ เรียกใช้ รหัส และ ฟอร์มผู้ใช้ มี ปรากฏขึ้น .
- ใส่ ขอบล่าง , ขอบบน และ ตัวเลข ของ ตำแหน่งทศนิยม ใน ฟอร์มผู้ใช้ และกด สร้างปุ่ม .
เอาต์พุต : ใน เซลล์ A1:B10 มี 20 แบบสุ่ม ตัวเลข ที่มี ทศนิยม 2 ตำแหน่ง ในช่วง ตั้งแต่ 1 ถึง 30
อ่านเพิ่มเติม: วิธีสร้างตัวเลขสุ่มโดยไม่ซ้ำใน Excel (7 วิธี)
ข้อควรจำ
- เรายังสามารถใช้ แก้ไขฟังก์ชัน แทน ฟังก์ชัน Int เป็น สร้างตัวเลขจำนวนเต็มที่ไม่ซ้ำกัน ฟังก์ชัน ลบ ส่วนที่เป็นเศษส่วน ของ ตัวเลข เช่นเดียวกับ ฟังก์ชัน Int
บทสรุป
ตอนนี้ เรารู้วิธีสร้างตัวเลขสุ่มที่ไม่ซ้ำโดยใช้ VBA ใน Excel ด้วยความช่วยเหลือของตัวอย่างที่เหมาะสม หวังว่าจะช่วยให้คุณใช้ฟังก์ชันได้อย่างมั่นใจมากขึ้น คำถามหรือข้อเสนอแนะใด ๆ อย่าลืมใส่ไว้ในช่องแสดงความคิดเห็นด้านล่าง