snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Dim r As Range
Sub RandomName()
Dim i As Integer
Dim j As Integer
With Worksheets("Sheet1")
j = .Range("A65536").End(xlUp).Row - 1
i = Int(Rnd * (j - 1) + 1)
Set r = .Cells(i, 1)
End With
r.Copy
With Worksheets("แสดงผล")
.Range("D7").PasteSpecial xlPasteValues
.Shapes("Button 12").Visible = True
End With
Application.CutCopyMode = False
End Sub
Sub KeepVal()
Dim rs As Range
Dim rt As Range
With Worksheets("แสดงผล")
Set rs = .Range("D7")
If .Range("G7") = "" Then
Set rt = .Range("G7")
Else
Set rt = .Range("G65536").End(xlUp).Offset(1, 0)
End If
rs.Copy
rt.PasteSpecial xlPasteValues
rt.Offset(0, -1) = rt.Offset(-1, -1) + 1
Application.CutCopyMode = False
r.EntireRow.Delete
rs.Select
End With
Worksheets("แสดงผล").Shapes("Button 12").Visible = False
End Sub
ขอบคุณอาจารย์มากครับ ผมลองทำตามไฟล์แนบแล้วครับ
ใช้ได้ดีครับ แต่ติดอยู่นิดหน่อยครับ ตรงที่ถ้าเรากด Random จนเหลือคนสุดท้าย
แล้วถ้ากด Random อีกครั้ง มันจะขึ้น Debug ขึ้นมาครับ Error ตรง Set r = .Cells(i, 1)
Dim r As Range
Sub RandomName()
Dim i As Integer
Dim j As Integer
With Worksheets("Sheet1")
j = .Range("A65536").End(xlUp).Row - 1
i = Int(Rnd * (j - 1) + 1)
Set r = .Cells(i, 1)
End With
r.Copy
With Worksheets("แสดงผล")
.Range("D7").PasteSpecial xlPasteValues
.Shapes("Button 12").Visible = True
End With
Application.CutCopyMode = False
End Sub
Sub KeepVal()
Dim rs As Range
Dim rt As Range
With Worksheets("แสดงผล")
Set rs = .Range("D7")
If .Range("G7") = "" Then
Set rt = .Range("G7")
Else
Set rt = .Range("G65536").End(xlUp).Offset(1, 0)
End If
rs.Copy
rt.PasteSpecial xlPasteValues
rt.Offset(0, -1) = rt.Offset(-1, -1) + 1
Application.CutCopyMode = False
r.EntireRow.Delete
rs.Select
End With
Worksheets("แสดงผล").Shapes("Button 12").Visible = False
End Sub