VBA - Åbning og brug af Visual Basic Editor (VBE) i Excel

Denne vejledning viser dig, hvordan du åbner og programmerer i Visual Basic Editor i VBA.

Åbning af Visual Basic Editor

Der er et par måder at få adgang til Visual Basic Editor (VBE) i Excel.

Trykke Alt + F11 på dit tastatur.

ELLER

Klik på Vis> Makroer> Vis makroer. Herfra kan du Redigere en eksisterende makro eller skab en ny. Begge muligheder åbner VB Editor.

ELLER

Udvikler> Visual Basic

Bemærk: Hvis du ikke kan se udviklerbåndet, skal du aktivere det.

For at aktivere udviklerbåndet

Klik på Fil fanen i båndet, og gå ned til Muligheder. I Tilpas bånd indstillinger, skal du markere Udvikler afkrydsningsfelt. Dette er som standard slukket, så du bliver nødt til at tænde det for at se fanen på båndet.

Klik på Okay.

Fanen Udvikler vises på hovedbåndet. Klik på Visual Basic i starten af ​​båndet for at få adgang til Visual Basic Editor.

Forståelse af VBE -skærmen

VBE -skærmen er vist i grafikken herunder.

Projekt Explorer

Med Project Explorer kan du se, hvordan det projekt, du arbejder i, er organiseret. Du kan se, hvor mange moduler og formularer der er gemt i projektet, og du kan navigere mellem disse moduler og formularer. Et modul er, hvor koden i din projektmappe er gemt, når du optager en makro, vil den blive gemt i et standardmodul - som som standard får navnet 'Modul 1 ’.

Hvert regneark i din Excel -fil har også et modul bag sig, ligesom selve projektmappen. Når du indsætter et nyt ark i projektmappen via hovedskærmen i Excel, ser du et ekstra arkmodul vises i Project Explorer.

Dobbeltklik på et modul for at gå til koden for det pågældende modul.

Du kan også klikke på menuen Vindue på værktøjslinjen og vælge modulet der for at gå til koden for det pågældende modul.

Type moduler

Modulerne er organiseret i 5 forskellige typer.

  1. Standard moduler - det meste af din kode går til denne type modul. Når du optager en makro, bliver den sat i et standardmodul. Når du skriver en generel procedure, der skal bruges i hele din projektmappe, går den også normalt ind i et standardmodul.
  2. Arbejdsbogsmoduler - dette modul indeholder koden den er unik for den enkelte projektmappe. Det meste af koden i denne type moduler er kendt som BEGIVENHEDER. En hændelse kan forekomme, når en projektmappe f.eks. Åbnes eller lukkes. Modulet kan også indeholde kode, der er skrevet af dig selv og brugt af begivenhederne.
  3. Ark moduler - dette modul indeholder den kode, der er unik for det enkelte ark. De kan forekomme, når der klikkes på et ark for eksempel ( Klik på Begivenhed), eller når du ændrer data i en celle. Dette modul kan også indeholde kode, der er skrevet af dig selv og kaldet af begivenhederne.
  4. Form moduler - dette er modulet bag en brugerdefineret formular, som du kan oprette. For eksempel kan du oprette en formular til at indeholde oplysninger om en faktura med en OK -knap, koden bag knappen (klikhændelsen) indeholder den kode, der kører, når der klikkes på knappen.
  5. Klassemoduler - dette modul bruges til at oprette objekter i løbetid. Klassemodul bruges af avancerede VBA -programmører og vil blive dækket på et senere tidspunkt.

Indsæt et modul eller en formular i din kode

Hvis du vil indsætte et nyt modul i din kode, skal du klikke på Indsæt i menulinjen, og klik på Modul.

Eller klik på Indsæt modul knappen, som du finder på standardbåndet.

Hvis du vil indsætte en ny brugerformular i din kode, skal du vælge UserForm mulighed.

En ny brugerformular vises i Projekt Explorer og vil blive vist i kodevinduet til højre.

Du kan også indsætte en Klassemodul

Et klassemodul bruges til at indsætte objekter i dit VBA -projekt.

Fjernelse af et modul eller en formular fra Project Explorer

Højreklik på det modul eller den formular, du vil fjerne, for at få vist genvejsmenuen med højreklik.

Klik på Fjerne (I dette tilfælde UserForm1… )

ELLER

Klik på Fil menu, og klik derefter på Fjern (UserForm1).

Der vises en advarselsboks, der spørger, om du vil eksportere formularen eller modulet, før du fjerner det. Eksport af formularen eller modulet giver dig mulighed for at gemme den som en individuel fil til brug i et andet Excel -projekt på et andet tidspunkt.

Oftere end ikke når du fjerner et modul eller formularer det, fordi du ikke har brug for det, så klik på Nej.

Vinduet Egenskaber

Du vil se egenskabsvinduet under Projekt Explorer. Du skal muligvis tænde dette.

Trykke F4 eller klik Udsigt, Egenskaber vindue.

Egenskabsvinduet giver dig mulighed for at se egenskaberne for det bestemte modul eller den formular, der er valgt i Projekt Explorer. Når du arbejder i moduler, kan du bruge egenskabsvinduet til at ændre modulets navn. Dette er den eneste ejendom, der er tilgængelig for et modul. Når du arbejder med formularer, vil der imidlertid være langt flere egenskaber til rådighed, og vinduet Egenskaber bruges derefter i vid udstrækning til at kontrollere opførsel af formularer og kontrollerne i formularen.

Når du optager en makro, indsættes den automatisk i et standardmodul. Modulet får navnet 'Modul 1 ’ og enhver kode, der er indeholdt i dette modul, kan bruges i hele dit projekt. Du bør omdøbe dit modul til noget, der er væsentligt, hvilket ville gøre din kode let at finde, hvis du tilføjede flere moduler til projektet.

Du kan også omdøbe dine formularer.

Hvis du har omdøbt dit ark i Excel, vises navnet på arket som navnet på arket i parentes efter Sheet1.

Hvis du vil ændre navnet på modulet bag arket, kan du ændre det på samme måde som du ændrer modulet og brugerformularnavnet - ved at ændre egenskaben Navn i vinduet Egenskaber.

Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!

Kodevinduet

Kodevinduet viser dig de delprocedurer og funktioner, der er indeholdt i dine moduler - det viser dig den faktiske kode. Når du optager en makro, oprettes en underprocedure for dig. Hvis du tilføjer en genvejstast til makroen, vises den som en kommentar i makroen for at fortælle dig, hvad genvejstasten er, du har tildelt makroen.

Øverst i kodevinduet er to kombinationsbokse. Disse giver dig mulighed for at se, hvilket objekt (hvis nogen) i modulet, du muligvis arbejder på, og hvilken procedure du muligvis arbejder på.

I eksemplet ovenfor arbejder vi ikke på noget objekt - derfor er dette sat til generelt, men vi arbejder inden for proceduren Gridlines.

Hvis vi havde mere end én procedure i dette modul, kunne vi bruge kombinationsboksen ovenfor til at navigere til de andre procedurer.

Forståelse af koden

Der er 2 typer procedurer - Underprocedurer og Funktionsprocedurer.

Underprocedurer

Makrooptageren kan kun optage underprocedurer. En delprocedure gør ting. De udfører handlinger som f.eks. Formatering af en tabel eller oprettelse af en pivottabel eller i netlinjeeksemplet ved at ændre visningsindstillingerne for dit aktive vindue. Størstedelen af ​​de skrevne procedurer er underprocedurer. Alle makroer er underprocedurer.

En delprocedure begynder med a Sub erklæring og slutter med en Afslut Sub udmelding. Procedurens navn følges altid af parenteser.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalskAfslut Sub

Funktionsprocedurer

En funktionsprocedure returnerer en værdi. Denne værdi kan være en enkelt værdi, en matrix, en række celler eller et objekt. Funktioner udfører normalt en form for beregning. Funktioner i Excel kan bruges med funktionsguiden, eller de kan kaldes fra underprocedurer.

123 Funktionskilo (pund som dobbelt)Kilo = (pund/2,2)Afslut funktion

Denne funktion kan bruges i dialogboksen Indsæt funktion i Excel til at konvertere pund til kilogram.

Oprettelse af en ny procedure

Inden du opretter din nye procedure, skal du sørge for at være i det modul, hvor du vil gemme proceduren. Du kan oprette en ny procedure ved at klikke på menuen Indsæt, Procedure;

eller du kan klikke på ikonet på værktøjslinjen

Følgende dialogboks vises

  1. Indtast navnet på din nye procedure i navnefeltet - dette skal starte med et bogstav i alfabetet og kan indeholde bogstaver og tal og højst være 64 tegn.
  2. Du kan have en Underprocedure, a Funktionsprocedure eller a Ejendom procedure. (Egenskaber bruges i klassemoduler og angiver egenskaber for ActiveX -kontroller, som du muligvis har oprettet).
  3. Du kan enten foretage omfanget af proceduren Offentlig eller Privat. Hvis proceduren er offentlig (standard), kan den bruges af alle modulerne i projektet, mens hvis proceduren er privat, vil den kun kunne bruges af dette modul.
  4. Du kan erklære lokale variabler i denne procedure som statik (dette har at gøre med variabelens omfang og gør en variabel på lokalt procedurniveau offentlig for hele modulet). Vi vil ikke bruge denne mulighed.

Når du har udfyldt alle relevante detaljer, skal du klikke på Okay.

Du skriver derefter din kode mellem Sub- og End Sub -sætningerne.

ALTERNATIVT - du kan skrive Sub- og End Sub -sætningerne i dit modul nøjagtigt som det fremgår ovenfor. Du behøver ikke at sætte ordet Public foran ordet sub - hvis dette ord udelades, antages alle procedurer i modulet automatisk at være Public.

Derefter skriver du Sub og derefter navnet på din procedure efterfulgt af parentes.

dvs.:

1 Deltest ()

Det Afslut Sub erklæring vises automatisk.

VBA -programmering | Kodegenerator virker for dig!

Skrive kode, der er let at forstå og navigere

Tilføjelse af kommentarer

Vend dig til en vane med at skrive kommentarer i din kode for på et senere tidspunkt at minde dig selv om kodens funktionalitet.

Du kan indsætte en kommentar i din kode, men indtaste en apostrof på tastaturet, eller du kan aktivere værktøjslinjen Rediger og bruge kommentarknappen, der vises på værktøjslinjen.

Højreklik på værktøjslinjerne.

Vælg Redigere.

Klik på kommentar -knappen for at indsætte en kommentar i din kode.

BEMÆRK: Du bruger normalt kun kommentarblok -knappen, når du har et par linjer med kode, du ønsker at kommentere (og ikke slette). Det er lettere for en enkelt kommentar at bruge en apostrof.

Indrykning

En god vane at komme ind på er at indrykke din kode, så det er let at læse koden igennem og se de forskellige dele af koden.

Der kan være mange niveauer af indrykning, afhængigt af logikken i din kode.

UpperCase vs LowerCase

VBA justerer alle koder til den korrekte sag, så hvis du skriver ALL IN UPPCERCASE eller alle med små bogstaver, vil den omjustere din kode for at være i den korrekte sag!

VBA -programmering | Kodegenerator virker for dig!

Autofuldførelse

Når du justerer din kode, vil du bemærke, at VBA forsøger at hjælpe dig ved at foreslå den kode, du kan skrive. Dette er kendt som Autofuldførelse.

Fejl ved fangst og fejlfinding

Der er 4 typer fejl, der kan opstå, når du skriver VBA -kode - Syntaksfejl, Kompilationsfejl, Kørselsfejl og Logiske fejl.

Syntaksfejl

Disse opstår, når du skriver koden forkert. Dette forhindres i vid udstrækning af VBA ved at have funktionen Syntaks -check slået til. Dette er normalt tændt som standard, men hvis dit er slukket, skal du tænde det ved at gå til Værktøjer, Muligheder og klik på Automatisk syntakskontrol.

Hvis du indtaster koden forkert (f.eks. Ekskluderer noget, der skal være i koden), dukker der en meddelelsesboks op, mens du skriver koden, så du får mulighed for at ændre koden.

Kompilationsfejl

Disse opstår, når der mangler noget i koden, der forhindrer koden i at køre. Fejlen kommer ikke op, når du skriver koden, men den opstår, når du prøver at køre koden.

VBA -programmering | Kodegenerator virker for dig!

Kørselsfejl

Disse opstår, når du kører koden, og syntaksen og kompilationen er korrekt, men der sker noget andet for at forhindre, at koden kører korrekt.

I dette tilfælde findes Sheet4 ikke. Denne fejlmeddelelse er mere nyttig end kompilering af fejlmeddelelser, da den giver dig mulighed for at fejlsøge koden og se, hvorfor den ikke fungerer.

Klik på Fejlfinde. Koden stopper ved fejlen og markerer fejlen med gult, så du kan rette din fejl.

Ændre Sheet4 til Sheet2 (som Sheet 2 findes og Sheet 4 ikke findes).

Trykke F5 eller klik på Blive ved knappen på værktøjslinjen.

Logiske fejl

Disse er de sværeste at finde. I deres tilfælde er koden skrevet korrekt, men den egentlige logik i koden er fejlbehæftet, så du får muligvis ikke det ønskede resultat fra koden. For logiske fejl er fejlfangning afgørende.

Der er 2 typer fejlfælder

Ved fejl Gå til

Følgende kode er for at åbne dialogboksen Åbn fil - det vil give os en fejl, hvis brugeren klikker Afbestille.

Når du kører koden, vises dialogboksen Åbn fil.

Når du derefter klikker på annuller, opstår fejlen.

Følgende fejlfælde vil fortsætte koden til kodeens afslutningsfunktion og returnere meddelelsen.

Dette gør brug af On Error GoTo for at afslutte funktionen.

Når du kører koden og klikker på annuller, vises meddelelsesboksen.

Ved fejl Genoptag næste

Hvis du sætter Ved fejl Genoptag næste Erklæring i din kode, den linje, der indeholder fejlen, ignoreres, og koden fortsætter.

For eksempel, hvis brugeren klikker på Annuller i nedenstående kode, vil koden ikke give dig en fejl i løbetiden, den slutter bare uden at koden gør noget yderligere.

Der er tidspunkter, hvor dette er meget nyttigt, men det kan også være meget farligt under visse omstændigheder, da det ikke returnerer en besked om, hvorfor du fik en fejl.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave