Sub Main()
Dim Darr As Variant, Arr As Variant, sTable As Long, s As Long, R As Long, k As Long, i As Integer, j As Integer
Const iR = 4: Const jC = 5
sTable = 150
ReDim Arr(1 To (iR + 1) * sTable, 1 To jC)
' chon 1 trong 2
'For s = 1 To sTable
'Darr = UniqueRandom(iR * jC)
'R = (s - 1) * (iR + 1)
'k = 0
'For i = 1 To iR
'For j = 1 To jC
'k = k + 1
'Arr(i + R, j) = Darr(k)
'Next j
'Next i
'Next s
'******
For s = 1 To sTable
Darr = UniqueTable(iR, jC)
k = (s - 1) * (iR + 1)
For i = 1 To iR
For j = 1 To jC
Arr(i + k, j) = Darr(i, j)
Next j
Next i
Next s
[A2].Resize(sTable * (iR + 1), jC) = Arr
End Sub
Function UniqueTable(ByVal iR As Integer, ByVal jC As Integer) As Variant
Dim Darr As Variant, Arr As Variant, i As Integer, j As Integer, k As Long
ReDim Arr(1 To iR, 1 To jC)
Darr = UniqueRandom(iR * jC)
For i = 1 To iR
For j = 1 To jC
k = k + 1
Arr(i, j) = Darr(k)
Next j
Next i
UniqueTable = Arr
End Function
Function UniqueRandom(ByVal N As Long) As Variant
Dim Arr As Variant, Darr As Variant, Tmp As Long, i As Long
ReDim Arr(1 To N): ReDim Darr(1 To N)
Randomize
For i = 1 To N
Tmp = Int(Rnd() * N) + 1
If Darr(Tmp) = 0 Then Darr(Tmp) = Tmp
Arr(i) = Darr(Tmp)
If Darr(N) = 0 Then Darr(Tmp) = N Else Darr(Tmp) = Darr(N)
N = N - 1
Next i
UniqueRandom = Arr
End Function