22. oktober 2009 - 00:47
Der er
12 kommentarer
Tømning af array inden afslutning af sub
Hvordan tømmer jeg mine arrays inden jeg afslutter min sub? Så jeg er sikker på at de ikke indeholder data hvis subben køres igen? Jeg anvender mit array som global og troede egentlig bare jeg skulle ReDim Sales(samme dimensioner) og så var den genoprtettet som tom?
Annonceindlæg fra Computerworld it-jobbank
22. oktober 2009 - 00:57
#1
Array.Clear(dit_array,0,dit_array.Length) Eks.: Dim t() As String = {"4535345", "345345345", "5353"} Array.Clear(t, 0, t.Length)
22. oktober 2009 - 01:10
#2
hmm... kan godt være det er mig som ikke helt fatter den kommando i forhold til mit array. Der er tale om et fler dimensioneret array og i VBA, ved ikke om det gør en forskel i forhold til Array.Clear ...ellers må du meget gerne forklare kommandoen :)
22. oktober 2009 - 01:25
#3
UPS..Overså at det var VBA
22. oktober 2009 - 01:31
#4
Dette er skrevet i VBA Excel 2003
og testet på en knap :-)
Private Sub CommandButton1_Click() Dim i() As String ReDim i(3) As String i(0) = "1" i(1) = "2" i(2) = "3" For x = 0 To 2 MsgBox i(x) Next ReDim i(3) As String For x = 0 To 2 MsgBox i(x) Next End Sub
22. oktober 2009 - 11:35
#5
Som du selv siger -og nissen2630- så skal du blot redimme. Nulstiller det ikke?
22. oktober 2009 - 11:44
#6
Du kan også bruge Erase statement, men så skal arrayet redimmes inden du bruger det igen alligevel: Dim Arr() as long Redim Arr(2, 2, 2) -tilskriv værdier her Redim Arr(2, 2, 2) -sætter alle værdier til 0 ELLER: Erase Arr -sletter alle dimensioner, så du har et uerklæret array Arr() igen
22. oktober 2009 - 15:11
#7
Jeg fik en besked om at arrayet allerede var dimensioneret og derfor kunne jeg ikke bruge ReDim?! Det troede jeg var hele formålet med redim, at man løbende kunne redfinere sit array eller i mit tilfælde tømme det :)
22. oktober 2009 - 15:21
#8
Du kan ikke redimme et array der er erklæret med dimensioner. Dim Arr(4) as Long -kan IKKE redimmes Dim Arr() as Long Redim Arr(4) -kan redimmes
22. oktober 2009 - 18:27
#9
Hvilken version af Excel bruger du ?
22. oktober 2009 - 20:29
#10
Bruger 2007... Jeg lavede en lille løkke til at tømme arrayet i stedet for, så løber den bare alle elemtenterne igennem og sletter dem, men troede det kunne ordnes med en ReDim - men jeg tog åbenbart fejl?
23. oktober 2009 - 18:33
#11
Du KAN nøjes med en Redim, men arrayet skal erklæres UDEN dimensioner. Hvor du nu har: Dim DitArray(5,5) As Etellerandet Skal du ændre til: Dim DitArray() As Etellerandet Redim DitArray(5,5) -Så kan du redimme alt det du vil.
23. oktober 2009 - 18:35
#12
Altså i din globale erklæring: Dim Ditarray() Lige før første gang du tilskriver værdier: Redim Ditarray(5,5)
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.