Redimm Array....Subscript out of range

Status
Niet open voor verdere reacties.

Speedy7912

Gebruiker
Lid geworden
4 dec 2009
Berichten
65
Dames/heren,

ik zit met het volgende.
ik heb een array welke bewerkt wordt. na bewerking zijn binnen het array dusdanige bewerkingen geweest dat items in het array bij elkaar genomen zijn. Hierdoor komen plaatsen vrij aan het eind van het array welke leeg zijn.

op het moment dat ik een redim preserve aanroep krijg ik de foutmelding error 9....Subscript out of range.

is het mogelijk lege plaatsen in een array te laten vervallen.

mijn code is alsvolgt:
Code:
            ArrTop = UBound(tijdelijkArray)
            ArrBottom = LBound(tijdelijkArray)
            Do While IsEmpty(tijdelijkArray(ArrTop, 1))
                ArrTop = ArrTop - 1
                ReDim Preserve tijdelijkArray(ArrBottom To ArrTop, 1 To 5)
            Loop

ter info. het gaat om een variable array. d.w.z aan het begin van de functie wordt het array een grootte gegeven afhankelijk van het aantal ingevulde regels in excel

voorbeeld:
Code:
Dimm tijdelijkArray(1 To aantalRegels, 1 To 5)
 
Dames/heren,

ik zit met het volgende.
ik heb een array welke bewerkt wordt. na bewerking zijn binnen het array dusdanige bewerkingen geweest dat items in het array bij elkaar genomen zijn. Hierdoor komen plaatsen vrij aan het eind van het array welke leeg zijn.

op het moment dat ik een redim preserve aanroep krijg ik de foutmelding error 9....Subscript out of range.

is het mogelijk lege plaatsen in een array te laten vervallen.

mijn code is alsvolgt:
Code:
            ArrTop = UBound(tijdelijkArray)
            ArrBottom = LBound(tijdelijkArray)
            Do While IsEmpty(tijdelijkArray(ArrTop, 1))
                ArrTop = ArrTop - 1
                ReDim Preserve tijdelijkArray(ArrBottom To ArrTop, 1 To 5)
            Loop

ter info. het gaat om een variable array. d.w.z aan het begin van de functie wordt het array een grootte gegeven afhankelijk van het aantal ingevulde regels in excel

voorbeeld:
Code:
Dimm tijdelijkArray(1 To aantalRegels, 1 To 5)

Hi,

voor zover ik nog weet kan je met redim alleen de laatste dimensie REDIM-en, een dimensie die dan ook niet uit een "1 to 5" declaratie mag bestaan

de vermelde declaratie Dimm moet zijn Dim (of DIM, whatever you like)

Wat ik uit jouw declaratie lees is: ik heb een array die is ongeveer zó groot en die wil ik veranderen in een array die ongeveer zó groot wordt.
.. en dat is denk ik niet jouw bedoeling :confused:

Het gebruik van een hulp-array zou in dit geval een oplossing mogen zijn
 
- is dit een zinvolle exercitie ?
- je verwart dynamische arrays met statische
- redim prerve is allen van otepassing op dynamische arrays die zo gedimensioneerd zijn:
Dim dynamisch ()
redim preserve dynamisch(4,6)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan