deaktivert443556 Skrevet 5. oktober 2011 Del Skrevet 5. oktober 2011 Jeg legger merke til at dersom jeg bruker en variabel (integer) i en selvlagd funksjon, da blir denne satt til 0 (null) etterpå. Dette gjør at jeg ikke får brukt den på nytt. Finnes det en måte jeg kan få den til å huske verdien sin? En workaround er å bruke en celle i Excel og heller referere til verdien i denne, men jeg unngår gjerne dette dersom jeg enkelt kan bruke variabelen slik jeg ønsker. Lenke til kommentar
Harald Staff Skrevet 5. oktober 2011 Del Skrevet 5. oktober 2011 (endret) Hvis du deklarerer den øverst i modulen vil den være tilgjengelig for all kode i modulen: Dim i As Integer Sub Test() i = 2 End Sub Sub Test2() MsgBox i End Sub Hvis du deklarerer den Public øverst i modulen vil den være tilgjengelig for all kode i alle moduler i hele prosjektet: Public i As Integer Merk at slike variabler nuller seg når koden feiler ved Runtime Error. HTH. Beste hilsen Harald Endret 5. oktober 2011 av Harald Staff Lenke til kommentar
deaktivert443556 Skrevet 5. oktober 2011 Forfatter Del Skrevet 5. oktober 2011 Det som er litt rart, er at den er tilgjengelig, men kun én gang. MinVar er et tall som refererer til en linje i et annet program. Via en egen funksjon henter jeg informasjon fra forskjellige steder på denne linjen. Funksjonen har jeg kalt FINN(linje, posisjon, lengde). Så FINN(2, 5, 10) ser etter innholdet i 10 posisjoner fra og med posisjon 5 på linje 2. I makroen gjør jeg dette flere ganger for hver linje. F.eks. MinVar = 2 Do Cells(MinVar, 1) = FINN(MinVar, 5, 10) Cells(MinVar, 2) = FINN(MinVar, 18, 2) Cells(MinVar, 3) = FINN(MinVar, 25, 3) MinVar = MinVar + 1 Loop Den første av de tre vil fungere, men så blir MinVar satt til null og da blir det naturligvis feil. Og da har jeg altså deklarert MinVar øverst i prosjektet som en integer. Lenke til kommentar
Harald Staff Skrevet 5. oktober 2011 Del Skrevet 5. oktober 2011 Umulig å svare på dette uten å se all relevant kode. Du må finne ut hvor og når MinVar endrer verdi. Du har verktøy for det i menyen Debug - Add watch. Lenke til kommentar
deaktivert443556 Skrevet 5. oktober 2011 Forfatter Del Skrevet 5. oktober 2011 Ah, se der ja. Da fant jeg ut nøyaktig når den nulles ut. Funksjonen FINN har jo parametrene "linje", "posisjon" og "lengde". I denne makroen setter linje til å være lik MinVar, men i koden til FINN nuller jeg ut "linje" (og de andre to parametrene) etter at funksjonen har gjort sitt, og da skjer visst det samme med MinVar. Det blir altså en slags link mellom disse to... Da er alternativene mine enten å bruke workaround, eller å ikke nulle ut linje, posisjon og lengde. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå