Avatar billede folj Forsker
03. september 2015 - 12:08 Der er 8 kommentarer og
1 løsning

Ændre størrelse på array excel-VBA

Hej eksperter !

Jeg manglér lige nogle guldkorn fra en array-ekspert, så jeg kan ende med at udvide mit array DeliveriesArray(9,6) som jeg allerede har hentet ind i min kodning. Det er nu på 9 rækker og 6 kolonner.

Jeg vil godt lige udvide arrayet fra de nuværende 6 kolonner til 8 kolonner, så jeg kan løbe det igennem og tilføje nogle ekstra data i disse kolonner.

er det muligt og hvordan?
03. september 2015 - 12:20 #1
Dim DeliveriesArray(9,6)
.
.
.
ReDim Preserve DeliveriesArray(9,8)
Avatar billede folj Forsker
03. september 2015 - 12:56 #2
@erikjuul
Den fejler på lige nøjagtig den linie:
ReDim Preserve DeliveriesArray(UBound(DeliveriesArray, 1), 8)

fejlen siger "Subscript out of range"

Bemærk at jeg har blot erstatttet 9-tallet af UBound(DeliveriesArray, 1) da det varierer hvor mange rækker der vil være.
Avatar billede folj Forsker
03. september 2015 - 13:35 #3
Jeg fandt en måde at klare det på uden at jeg havde behov for at ændre på array-størrelsen.

Tidligere i koden havde jeg mulighed for at ændre på det range den henter data fra til DeliveriesArray, og koden kunne fint håndtere et array i den størrelse hele vejen.

hvis ikke der kommer yderligere kommentarer, så har jeg tænkt mig at lukke mit spm. med det.
03. september 2015 - 21:13 #4
Tror du ikke, at du blot skal have et lille + 1 tilføjet, således der kommer en række mere...

ReDim Preserve DeliveriesArray(UBound(DeliveriesArray, 1) + 1, 8)
04. september 2015 - 08:57 #5
Godt du fandt en løsning.

Jeg synes bare ikke løsningen passer til din problembeskrivelse:
"Jeg vil godt lige udvide arrayet fra de nuværende 6 kolonner til 8 kolonner"
Avatar billede folj Forsker
04. september 2015 - 12:16 #6
@smartoffice_dk:
Nej for jeg skal bevare det rækkeantal jeg har.
Det var kun kolonne-antal jeg ønskede at udvide til 8.
Avatar billede folj Forsker
04. september 2015 - 12:16 #7
Det er vist lukketid...
Avatar billede folj Forsker
04. september 2015 - 12:19 #8
Og tak for Jeres engagement til erikjuul og smartoffice_dk
04. september 2015 - 14:30 #9
Det havde også hjulpet, hvis jeg havde læst det hele fra starten af...

Problemet er, at du sætter størrelsen på dit array i din DIM sætning, og dermed er det låst... hvis du derimod gør det således, så har du ingen problemer...

Sub DemoRedimArray()
    Dim DeliveriesArray As Variant
    ReDim DeliveriesArray(9, 6)
    DeliveriesArray(9, 6) = "Smart Office"
    ReDim Preserve DeliveriesArray(UBound(DeliveriesArray, 1), 8)
    MsgBox DeliveriesArray(9, 6) & vbCrLf & UBound(DeliveriesArray, 1) & " - " & UBound(DeliveriesArray, 2)
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester