tối đa 2 lần trong 5 ô trống của 1 range, tối thiểu 1 lần trong 5 ô trống của 1 range VD: range( b:f) 1 2 2 3 5 range(h:l) 4-3-5-1-2 ...Xem trong file thấy hàng 1 có 5 số từ 1 đến 5, với 15 ô, yêu cầu lặp tối đa 2 lần => bài toán vô nghiệm.Hoặc là chưa hiểu hết ý của bạn muốn gì???
Option Explicit
[b]Sub SoNgau()[/b]
Dim Jj As Long, Ww As Byte
Dim StrC As String
Randomize: Jj = 1 + 2 * Rnd \ 1
With [x5]
.Value = .Offset(, -Jj).Value
End With
For Jj = 3 To 6 Step 2
For Ww = 20 To 24
StrC = StrC & Right("00" & Cells(Jj, Ww).Value, 2)
Next Ww
XuLiSo StrC, Jj
StrC = ""
Next Jj
[x5].Value = ""
[b]End Sub[/b]
[b]Sub XuLiSo(StrC As String, Rws As Long)[/b]
Dim Jj As Long, Ff As Long, VTr As Byte
Dim Cls As Range
Set Cls = Union(Cells(Rws, "B"), Cells(Rws, "H"), Cells(Rws, "n"))
For Ff = 1 To (Cells.Columns.Count * Rws)
Randomize: Jj = 1 + 8 * Rnd() \ 1
If Jj Mod 2 = 0 Then Jj = Jj + 1
If Jj = 9 Then
StrC = Right(StrC, 2) & Left(StrC, 8)
Else
StrC = Mid(StrC, Jj, 10) & Left(StrC, Jj - 1)
End If
If Not Intersect(Cells(Ff), Cls) Is Nothing Then
Cells(Ff).Value = Left(StrC, 2)
Cells(Ff + 1).Value = Mid(StrC, 3, 2)
Cells(Ff + 2).Value = Mid(StrC, 5, 2)
Cells(Ff + 3).Value = Mid(StrC, 7, 2)
Cells(Ff + 4).Value = Mid(StrC, 9, 2)
End If
Next Ff[b]
End Sub[/b]
mình không hiểu đoạn code Jj = 1 + 2 * Rnd \ 1
hàm Rnd\1 có ý nghĩa thế nào? đã tìm hiểu trên google nhưng không có kết quả
mình mới tìm hiểu về Vba nhưng bấm F1 và F2 trong vba đều không nói rõ về Rnd\ có ý nghĩa thế nào?
xin hỏi mọi người cách tìm hiểu nếu gặp phải hàm mà mình không biết