Speedy7912
Gebruiker
- Lid geworden
- 4 dec 2009
- Berichten
- 65
om een array door te geven aan een functie gebruik ik de volgende code
ik krijg echter de melding: Subscript valt buiten bereik. Dit bij het vullen van de datearray. Kan iemand aangeven wat ik fout doe.
Tevens is mijn vraag hoe vba met het opruimen van variabelen omgaat. Stel: ik roep de functie SortDateArray meerdere malen aan. Steeds met een ander source array welke in grootte verschilt. moet ik hiervoor zelf de array opruimen of doet VBA dit voor me. Indien ik het zelf moet doen, hoe ga ik dan te werk.
alvast mijn hartelijke dank
Code:
Sub DoeIetsMetArrays()
Dim datearray() As Date
Dim sortedDateArray() As Date
For regel = 10 To 28
If Blad1.Range("A" & regel).Value <> "" Then
datearray(regel - 10) = Blad1.Range("A" & regel).Value
End If
Next regel
sortedDateArray() = SortDateArray(Arr:=datearray)
End Sub
Code:
Function SortDateArray(ByRef Arr() As Date) As Date()
Dim lLoop As Long
Dim lLoop2 As Long
Dim date1 As Date
Dim date2 As Date
'Sort array
For lLoop = 0 To UBound(Arr)
For lLoop2 = lLoop To UBound(Arr)
If UCase(Arr(lLoop2)) < UCase(Arr(lLoop)) Then
str1 = Arr(lLoop)
str2 = Arr(lLoop2)
Arr(lLoop) = date2
Arr(lLoop2) = date1
End If
Next lLoop2
Next lLoop
'return array
SortDateArray = Arr()
End Function
ik krijg echter de melding: Subscript valt buiten bereik. Dit bij het vullen van de datearray. Kan iemand aangeven wat ik fout doe.
Tevens is mijn vraag hoe vba met het opruimen van variabelen omgaat. Stel: ik roep de functie SortDateArray meerdere malen aan. Steeds met een ander source array welke in grootte verschilt. moet ik hiervoor zelf de array opruimen of doet VBA dit voor me. Indien ik het zelf moet doen, hoe ga ik dan te werk.
alvast mijn hartelijke dank