Home Rejser Gæstebog Erics blog Kontakt
 

Home > Excel makroer & VBA

Excel makroer & VBA - tips, tricks og eksempler

Dette er mine sider om programmering i Excel med makroer, eller VBA (Visual Basic for Applications) som det også hedder.

Programmering med makroer i Excel er et stærkt værktøj til at automatisere opgaver, som ellers ville kræve meget tid, og man kan ligefrem udvikle applikationer med dialogbokse og hvad ved jeg til andre brugere.

Dette er ikke en lærebog - dem er der i forvejen tonsvis af. Nej, jeg videregiver blot nogle af de erfaringer, jeg har gjort, med eksempler på kode, jeg har haft gavn af.

Der er ikke meget begynderstof - det meste henvender sig til brugere, som er kommet i gang, og som måske spekulerer over, hvordan de lige kringler et bestemt problem, eller hvordan de kan gøre koden mere effektiv.

Men der kan alligevel sagtens være inspiration at hente for de Excel-brugere, som leger med makro-optageren og gerne vil rette koden til, så den bliver mere strømlinet.

På de fleste sider vil der være kode, som du kan markere og kopiere (CTRL+C) og sætte ind i et VBA-modul. Der er også nogle regneark med eksempler, som du kan downloade.

Alle eksemplerne er lavet og afprøvet i enten Excel 2000 eller Excel 2003. Hvis de ikke virker i andre versioner så bebrejd venligst Microsoft og ikke mig ;-)

Jeg har primært arbejdet med programmering i Excel på mit arbejde. Det er især automatisk import af procesdata og dataudtræk til forskellige formål.

I den tunge ende ligger programmer, som kan blande råstoffer i det rette kemiske forhold ved at bruge Excels problemløser til løsning af ligninger med flere ubekendte.

Kontakt

Du er velkommen til at sende mig en mail, hvis du har spørgsmål eller forslag til nye emner, jeg kan tage op.

Nu er der grænser for, hvor meget tid jeg kan bruge på dette, så hav venligst forståelse for, at jeg ikke kan love dig et svar eller en ny webside; men jeg læser alle mails!


Opdateret 26. juni 2011 med Arrays og ranges. Eksempler på hvordan man smart og hurtigt kan slette rækker i et range (en tabel) ved at bruge arrays.

Jeg tror, at mange tumler med store tabeller (fx logfiler), som de skal luge ud i. Det kan være bøvlet og langsomt, hvis man opererer direkte på sit range (tabellen), men ved at tage arrays til hjælp, går det nemt og meget hurtigere.

Fremgangsmåden kan også med fordel bruges til andre ting end lige netop at fjerne eller tilføje rækker til et range.

Tricket er at kopiere sit range til et array, gøre det, der skal gøres, i arrayet og dernæst kopiere arrayet ind som en tabel i ét hug. Et regneark med eksemplerne kan downloades.

Opdateret 12. juni 2011 med Tilfældige tal og lodtrækning. Eksempler på hvordan man kan generere tilfældige (helt præcist: pseudotilfældige) tal og trække lod med VBA. Der er også et eksempel på, hvordan man laver en tabel med unikke tilfældige tal - altså uden dubletter. Eksemplerne viser også praktisk brug af range objekter og collections.

Opdateret 26. februar 2011 med Beregning af tid. Demonstrerer hvordan man kan udtrække timer, minutter og sekunder af et datoformateret klokkeslæt som fx 03:40:21 ved at bruge streng-funktionerne Left, Mid og Right eller datofunktionen DatePart. Berører også funktionen DateDiff, som kan returnere forskellen på to datoer + evt. klokkeslæt i år, uger, dage, timer, minutter og sekunder.