Excel VBA / VBA programmering / Formler
|
Søger du et "rigtigt" Excel VBA kursus?
Ja, jeg holder ikke kun fjernundervisningskurser
- jeg kan også komme ud i din virksomhed og undervise med
udgangspunkt i jeres data og udfordringer.
|
|
Formler
Det er ikke specielt kompliceret at indsætte formler i et regneark fra VBA - det gøres igen via Range objektet. Range objektet har en stribe egenskaber der kan bruges til formålet:
| Egenskab | Anvendelse |
| Formula | Range("A1").Formula = "=B2*B3" vil indsætte formlen "B2*B3" i celle A1 |
| FormulaArray | Range("E1:E3").FormulaArray = "=Sum(R1C1:R3C3)" vil indsætte en matrixformel i E1:E3. Bemærk at man skal bruge RC notation |
| FormulaHidden | Range("A1:B1").FormulaHidden = True vil skjule formlerne i A1:B1 hvis arkfanen beskyttes |
| FormulaLabel | ActiveWorkbook.AcceptLabelsInFormulas = True Worksheets(1).Range("a1:e3").FormulaLabel = xlColumnLabels - vil gøre det muligt at bruge kolonne labels i formler |
| FormulaLocal | Giver mulighed for at angive formler i den danske udgave - dvs. du kan skrive Range("A1").FormulaLocal = "=Middel(B2:B3)" (hvis du arbejder i en dansk Excel) |
| FormulaR1C1 | Virker som Formula, men forudsætter du bruger RC notation |
| FormulaR1C1Local | Virker som FormulaLocal, men forudsætter du bruger RC notation |
Bruger man ikke FormulaLocal skal man huske at alt foregår på engelsk - det gælder både funktionnavne, tal og dato formatering.
Et par eksempler
Range("C1").Formula = "=A1*B1"Vil altså sætte formlen =A1*B1 ind i celle C1.
Range("D1").Formula = "=C1*1.25"Lægger moms til tallet i C1 og skriver det med formlen =C1*1,25 i celle D1. Læg mærke til at formlen skrives med . i stedet for , . Når vi arbejder med Formula skal alle formler skrives på "amerikansk".
Man kan også skrive
Range("C1:C10").Formula = "=A1*B1"Det er en sød lille detalje, der udnytter, at Excel arbejder med relative referencer. Linjen vil indsætte formlen =A1*B1 i celle C1, =A2*B2 i celle C2 osv. (Prøv selv om det passer)
Læg også mærke til at vi kan opbygge formlen dynamisk, hvis vi har behov for det.
AntalRækker = Range("A1").End(xlDown).Row
Range("C1").End(xlDown).Offset(1, 0).Formula = "=Sum(C2:C" & AntalRækker & ")"
Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.<<- Formatering
Arbejde med arkfaner ->>