Evleos Skrevet 9. desember 2007 Del Skrevet 9. desember 2007 (endret) Jeg finner ingen god forklaring på forskjellen mellom referansevariabler og 'vanlige' variabler. (For referansevariabler bruker man Set xxx = .Range("xx") . Helt sikkert noen som vet En annen ting; er det noen forskjell på do while og for next utover at ved for next så vet man hvor mange ganger loopen skal gå? En tredje ting: Boolsk algebra. Er det bare relevant å dra dette inn når man har funksjoner som gir true/false svar? Er det alltid relevant å dra inn boolsk algebra i slike tilfeller? EDIT: Eller gjelder bare dette når man har IF-setninger? (If true and true then..) Har eksamen snart =) Endret 9. desember 2007 av lithium Lenke til kommentar
Evleos Skrevet 9. desember 2007 Forfatter Del Skrevet 9. desember 2007 Kan forskjellen være at Set xxx = Range("xx") lar xxx peke på plasseringen til "xx" Mens yy = Range("xx") legger innholdet i cellen "xx" inn i yy? Lenke til kommentar
aadnk Skrevet 11. desember 2007 Del Skrevet 11. desember 2007 En annen ting; er det noen forskjell på do while og for next utover at ved for next så vet man hvor mange ganger loopen skal gå? For Next er et særtilfelle av Do While, en kontrollstruktur som forenkler tellekondisjoner (at en viss handling skal repeteres N ganger), og er ofte optimalisert av kompilatoren dertil. Det betyr at enskjønt Do While godt kan erstatte For Next-blokker, vil den være langt mindre effektiv i samme operasjon. En tredje ting: Boolsk algebra. Er det bare relevant å dra dette inn når man har funksjoner som gir true/false svar? Er det alltid relevant å dra inn boolsk algebra i slike tilfeller? EDIT: Eller gjelder bare dette når man har IF-setninger? (If true and true then..)Man må gjerne bruke Boolean-datatypen i begge tilfeller. Har man kun behov for to mulige verdier, er Boolean ypperlig. Set xxx = Range("xx") lar xxx peke på plasseringen til "xx"Mens yy = Range("xx") legger innholdet i cellen "xx" inn i yy? Det er således det fungerer i praksis, ja. For å forklare dette, må vi først bemerke at returdatatypen til Range("xx") er et objekt, og at VB faktisk tillater utelatelse av navnet til standardegenskapen (Text for tekstbokser, Caption for merknadsbokser, Value for celler, ect.) for alle objekter. Har objektet A en standardegenskap B, kan man altså forkorte A.B = True til A = True. Men, her oppstår det jo en flertydighet; Hvordan skal kompilatoren kunne skille mellom manipulasjon med objektet direkte og med dens standardverdi? Språkutformernes løsning ble å introdusere nøkkelordet Set for alle operasjoner med objekter, slik at Set A = B dermed betyr at referansen til A-objektet kopieres til B og gjør A og B likeledes, mens B = A vil hente ut verdien til A's standardegenskap og legge den i B. 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å