Jag har en "For" loop där jag får ut två olika värden, en sträng som innehåller ett namn och en som innehåller ett nummervärde!
Hur kan jag lägga till alla värden i en array och sortera dom efter nummervärdena?
5 svar · 377 visningar · startad av aleborg
Jag har en "For" loop där jag får ut två olika värden, en sträng som innehåller ett namn och en som innehåller ett nummervärde!
Hur kan jag lägga till alla värden i en array och sortera dom efter nummervärdena?
Försöker skapa en array i For loopen så här:
For i = 0 To Ubound(grupper,2)
'massa kod...
SortArr(0,i)=poang
SortArr(1,i)=grupper(1,i)
Next
men får bara felet
Type mismatch: 'SortArr'
Hur ska man göra?
Löste det så här:
ReDim PRESERVE SortArr(1,2)
SortArr(0,i)=poang
SortArr(1,i)=grupper(1,i)
nu återstår bara sorteringen...
Testa denna. Urklippt ur en VB Script Class som sköter en del array användning, finns upplagd på wF Script.
[r]
iPos = den position i den 2-dimensionella arrayen som man ska sortera på
[/r]
'## -- sort order --
sSortOrder = "ASC"
'## -- get total positions in array --
intPositions = 1
'## -- max index in array --
intMaxIndex = UBound(g_varArray,2)
If UCase(sSortOrder) = "ASC" Then
'## -- sort ascending --
For I = 0 To intMaxIndex
For X = (I + 1) To intMaxIndex
If g_varArray(iPos, I) > g_varArray(iPos,X) Then
For intPos = 0 To intPositions
varTemp = g_varArray(intPos, I)
g_varArray(intPos, I) = g_varArray(intPos, X)
g_varArray(intPos, X) = varTemp
Next
End If
Next
Next
ElseIf UCase(sSortOrder) = "DESC" Then
'## -- sort descending --
For I = 0 To intMaxIndex
For X = (I + 1) To intMaxIndex
If g_varArray(iPos, I) < g_varArray(iPos,X) Then
For intPos = 0 To intPositions
varTemp = g_varArray(intPos, I)
g_varArray(intPos, I) = g_varArray(intPos, X)
g_varArray(intPos, X) = varTemp
Next
End If
Next
Next
End If
g_varArray får du byta ut till namnet på din array
cya,
PatrikB
Tack, funkade utmärkt! :birp
SKÅL!!! :birp :bire