การสุ่มแบบคัดออก
การสุ่มข้อมูลแบบคัดออกนี้ สามารถนำไปใช้ในการแจกรางวัล ผู้ที่ได้รางวัลแล้วจะถูกคัดออกไม่นำมาสุ่มต่อ ปกติจะเป็นการสุ่มขึ้นมาเป็นครั้ง ๆ ไป ไม่ได้สุ่มขึ้นมาพร้อมกันแบบหลาย ๆ คน การทำเช่นนั้นต้องอาศัย VBA มาช่วยในการสุ่มครับ โดยมีวิธีการคือ - เตรียมชีทรายชื่อที่ต้องการสุ่มสมมุติชื่อชีท Names โดยเก็บข้อมูลที่ต้องการสุ่มไว้ในคอลัมน์ A
- เตรียมชีทที่ใช้ในการแสดงผลการสุ่มและเก็บข้อมูลของคนที่ถูกสุ่มแล้วแยกไว้ต่างหาก สมมุติชื่อชีท Random
- เขียน Code VBA เพื่อทำการสุ่มข้อมูลและเก็บข้อมูลที่ได้จากการสุ่มตามด้านล่าง
- สร้างปุ่มเพื่อคลิกสุ่มข้อมูลและเก็บข้อมูล โดยให้ชื่อปุ่ม Random และ Keep Value ตามลำดับ
- ทำการ Assigned Macro ที่ชื่อ RandomName ให้กับปุ่ม Random และ Assigned Macro ที่ชื่อ KeepVal ให้กับปุ่ม Keep Value ตามลำดับ
Code VBA สำหรับการสุ่มข้อมูล Dim r As Range Sub RandomName() Dim i As Integer, j As Integer With Worksheets("Names") j = .Range("A65536").End(xlUp).Row - 1 i = Int(Rnd * (j - 1) + 1) Set r = .Cells(i, 1) End With With Worksheets("Random") .Range("D7") = r .Shapes("Button 12").Visible = True End With End Sub Sub KeepVal() Dim rs As Range, rt As Range With Worksheets("Random") Set rs = .Range("D7") If .Range("G7") = "" Then Set rt = .Range("G7") Else Set rt = .Range("G65536").End(xlUp).Offset(1, 0) End If rt = rs rt.Offset(0, -1) = rt.Offset(-1, -1) + 1 r.EntireRow.Delete .Shapes("Button 12").Visible = False End With End Sub ภาพตัวอย่างการสุ่มข้อมูล  จากภาพด้านบนจะเห็นว่าเมื่อคลิกปุ่ม Random แล้วจะทำการสุ่มข้อมูลมาให้ที่ D7 และจะมีปุ่ม Keep Value ปรากฏขึ้นมาเพื่อเตรียมพร้อมสำหรับการเก็บข้อมูลไว้ที่ F7:G7 เป็นต้นไป เมื่อคลิกปุ่ม Keep Value ก็จะทำการเก็บข้อมูลที่สุ่มมาแล้ว จากนั้นจะทำการซ่อนปุ่มนี้ไว้ และจะปรากฏอีกทีเมื่อคลิกปุ่ม Random สำหรับสมาชิกเวบ //www.snasui.com/ สามารถดาวน์โหลดไฟล์ตัวอย่างได้จากที่นี่ครับ Random and keep value
Create Date : 12 พฤษภาคม 2554 |
Last Update : 12 พฤษภาคม 2554 19:15:27 น. |
|
0 comments
|
Counter : 2053 Pageviews. |
 |
|