สอบถามการ random โดย VBA
Posted: Fri Dec 21, 2018 5:56 pm
ถึงอาจารย์และเพื่อนๆทุกคนครับ
ผมไม่เข้าใจว่าทำไม เมื่อทำการ random แล้วถึงเหลือค่าตัวเลขติดอยู่ 1 ค่าที่ไม่ถูก random ครับ
จะต้องแก้ไขหรือปรับเปลี่ยนตรงไหนอย่างไร รบกวนช่วยดูและแนะนำให้หน่อยนะครับ ตัวอย่าง VBA
Dim r As Range
Sub RandomName()
Dim i As Integer
Dim j As Integer
'Application.OnTime Now() + TimeValue("00:00:1"), "RandomName"
On Error Resume Next
With Worksheets("ÃËÑʵÑÇàÅ¢")
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("D3").PasteSpecial xlPasteValues
.Shapes("Button 12").Visible = True
End With
Application.CutCopyMode = False
End Sub
Sub KeepVal()
Dim rs As Range
Dim rt As Range
On Error Resume Next
With Worksheets("áÊ´§¼Å")
Set rs = .Range("D3")
If .Range("Q7") = "" Then
Set rt = .Range("Q7")
Else
Set rt = .Range("Q65536").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 แล้วถึงเหลือค่าตัวเลขติดอยู่ 1 ค่าที่ไม่ถูก random ครับ
จะต้องแก้ไขหรือปรับเปลี่ยนตรงไหนอย่างไร รบกวนช่วยดูและแนะนำให้หน่อยนะครับ ตัวอย่าง VBA
Dim r As Range
Sub RandomName()
Dim i As Integer
Dim j As Integer
'Application.OnTime Now() + TimeValue("00:00:1"), "RandomName"
On Error Resume Next
With Worksheets("ÃËÑʵÑÇàÅ¢")
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("D3").PasteSpecial xlPasteValues
.Shapes("Button 12").Visible = True
End With
Application.CutCopyMode = False
End Sub
Sub KeepVal()
Dim rs As Range
Dim rt As Range
On Error Resume Next
With Worksheets("áÊ´§¼Å")
Set rs = .Range("D3")
If .Range("Q7") = "" Then
Set rt = .Range("Q7")
Else
Set rt = .Range("Q65536").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