Hallo Jan,
ich habe ein array von integers:
dim matrix(144) as integer
ich habe allen 144 elementen einen Wert zugeordnet und möchte
diese nun zufällig anordnen, also durchmischen.
es sind 145 Elemente.
Per Google habe ich das hier gefunden:
http://vb-tec.de/arrmix.htm
Daraus werde ich aber nicht ganz schlau. Was müsste ich
konkret mit meiner Variablen machen?
Versuchen das zu machen was da steht
z.B. so:
Option Explicit
'
Sub Test()
Dim Matrix(144), N, Neu
For N = 0 To 144
Matrix(N) = N
Next N
Neu = RandomIndex(Matrix)
For N = 0 To 144
MsgBox Neu(N)
Next N
End Sub
'
Public Function RandomIndex(ByRef anArray As Variant) As Variant 'As Long() 'VB6
RandomIndex = RandomLongArray(UBound(anArray), LBound(anArray))
End Function
'
Public Function RandomLongArray(ByVal Max As Long, Optional ByVal Min As Long = 1, \_
Optional ByVal Count As Long = 0) As Variant 'As Long() 'VB6
Dim Range As Long
Dim Longs() As Long
Dim i As Long
Dim j As Long
Dim Item As Long
'Array initialisieren:
ReDim Longs(Min To Max)
For i = Min To Max
Longs(i) = i
Next i
'Array mischen:
Range = Max - Min + 1
For i = Min To Max - 1
j = Int(Rnd \* Range) + i
Item = Longs(j)
Longs(j) = Longs(i)
Longs(i) = Item
Range = Range - 1
Next i
'Ergebnis zurückgeben:
If Count \> 0 Then
ReDim Preserve Longs(Min To Min + Count - 1)
End If
RandomLongArray = Longs
End Function
Gruß
Reinhard