VBA - Öppna och använda Visual Basic Editor (VBE) i Excel

Denna handledning visar dig hur du öppnar och programmerar i Visual Basic Editor i VBA.

Öppnar Visual Basic Editor

Det finns några sätt att komma åt Visual Basic Editor (VBE) i Excel.

Tryck Alt + F11 på tangentbordet.

ELLER

Klick Visa> Makron> Visa makron. Härifrån kan du Redigera ett befintligt makro eller Skapa en ny. Båda alternativen öppnar VB Editor.

ELLER

Utvecklare> Visual Basic

Obs! Om du inte ser utvecklarbandet måste du aktivera det.

För att aktivera utvecklarbandet

Klicka på Fil fliken i menyfliksområdet och gå ner till alternativ. I Anpassa band alternativ, markera Utvecklare kryssruta. Detta är avstängt som standard så du måste slå på det för att se fliken på menyfliksområdet.

Klick OK.

Fliken Utvecklare visas på huvudbandet. Klicka på Visual Basic i början av menyfliksområdet för att komma åt Visual Basic Editor.

Förstå VBE -skärmen

VBE -skärmen visas i grafiken nedan.

Projektutforskaren

Med Project Explorer kan du se hur projektet som du arbetar är organiserat i. Du kan se hur många moduler och formulär som är lagrade i projektet och kan navigera mellan dessa moduler och formulär. En modul är där koden i din arbetsbok lagras. När du spelar in ett makro lagras den i en standardmodul - som som standard kommer att heta 'Modul 1 ’.

Var och en av kalkylbladen i din Excel -fil har också modul bakom sig, liksom arbetsboken själv. När du sätter in ett nytt blad i arbetsboken via Excel -huvudskärmen ser du en ytterligare bladmodul visas i Project Explorer.

Dubbelklicka på en modul för att gå till koden för den modulen.

Du kan också klicka på menyn Fönster i verktygsfältet och välja modulen där för att gå till koden för den modulen.

Typ av moduler

Modulerna är organiserade i 5 olika typer.

  1. Standardmoduler - det mesta av din kod kommer att gå in i den här typen av moduler. När du spelar in ett makro sätts det in i en standardmodul. När du skriver en allmän procedur som ska användas i hela din arbetsbok, går den också normalt in i en standardmodul.
  2. Arbetsboksmoduler - denna modul har koden som är unik för den individuella arbetsboken. Det mesta av koden i denna typ av moduler kallas EVENEMANG. En händelse kan uppstå när en arbetsbok öppnas eller stängs till exempel. Modulen kan också innehålla kod som är skriven av dig själv och används av händelserna.
  3. Arkmoduler - denna modul har koden som är unik för det enskilda bladet. De kan uppstå när du klickar på ett ark (till exempel Klicka på Händelse), eller när du ändrar data i en cell. Denna modul kan också innehålla kod som är skriven av dig själv och kallas av händelserna.
  4. Formulär moduler - det här är modulen bakom ett anpassat formulär som du kan skapa. Till exempel kan du skapa ett formulär för att innehålla detaljer för en faktura, med en OK -knapp innehåller koden bakom knappen (klickhändelsen) koden som körs när du klickar på knappen.
  5. Klassmoduler - denna modul används för att skapa objekt vid körning. Klassmodul används av avancerade VBA -programmerare och kommer att täckas i ett senare skede.

Infoga en modul eller ett formulär i din kod

För att infoga en ny modul i din kod, klicka på Föra in i menyraden och klicka på Modul.

Eller klicka på Sätt in modul knappen som du hittar på standardbandet.

Om du vill infoga ett nytt användarformulär i din kod väljer du UserForm alternativ.

Ett nytt användarformulär visas i Project Explorer och visas i kodfönstret till höger.

Du kan också infoga en Klassmodul

En klassmodul används för att infoga objekt i ditt VBA -projekt.

Ta bort en modul eller ett formulär från Project Explorer

Högerklicka på modulen eller formuläret som du vill ta bort för att visa högerklicksmenyn.

Klick Avlägsna (I detta fall UserForm1… )

ELLER

Klicka på Fil -menyn och klicka sedan på Ta bort (UserForm1).

En varningsruta visas där du frågar om du vill exportera formuläret eller modulen innan du tar bort det. Genom att exportera formuläret eller modulen kan du spara det som en enskild fil för användning i ett annat Excel -projekt vid någon annan tidpunkt.

Oftare när du tar bort en modul eller formar det är för att du inte behöver den, så klicka på Nej.

Fönstret Egenskaper

Du kommer att se egenskaper fönstret under Project Explorer. Du kan behöva slå på detta.

Tryck F4 eller klicka Se, Egenskapsfönster.

Egenskapsfönstret gör att du kan se egenskaperna för den specifika modulen eller formuläret som är valt i Project Explorer. När du arbetar i moduler kan du använda egenskapsfönstret för att ändra modulens namn. Detta är den enda egenskapen som är tillgänglig för en modul. Men när du arbetar med formulär kommer det att finnas mycket fler egenskaper tillgängliga och fönstret Egenskaper används sedan i stor utsträckning för att styra beteendet hos formulär och kontrollerna i formuläret.

När du spelar in ett makro sätts det automatiskt in i en standardmodul. Modulen kommer att heta 'Modul 1 ’ och alla koder som finns i den modulen kan användas under hela ditt projekt. Du bör byta namn på din modul till något som är betydande, vilket skulle göra din kod lätt att hitta om du skulle lägga till flera moduler i projektet.

Du kan också byta namn på dina formulär.

Om du har bytt namn på arket i Excel, kommer bladets namn att visas som namnet på arket inom parentes efter Sheet1.

Om du vill ändra namnet på modulen bakom arket kan du ändra det på samma sätt som du ändrar modulen och användarens formulärnamn - genom att ändra egenskapen Namn i fönstret Egenskaper.

Trött på att söka efter exempel på VBA -kod? Prova AutoMacro!

Kodfönstret

Kodfönstret visar delprocedurer och funktioner som finns i dina moduler - det visar dig den faktiska koden. När du spelar in ett makro skapas ett underförfarande för dig. Om du lägger till en genvägstangent i makrot kommer den att visas som en kommentar i makrot för att meddela dig vilken genvägstangent du har tilldelat makrot.

Högst upp i kodfönstret finns två kombinationsrutor. Dessa låter dig se vilket objekt (om något) i modulen som du kan arbeta med och vilket förfarande du kan arbeta med.

I exemplet ovan arbetar vi inte på något objekt - därför är detta inställt på allmänt, men vi arbetar inom rutnätet.

Om vi ​​hade mer än ett förfarande i den här modulen kan vi använda kombinationsrutan ovan för att navigera till de andra procedurerna.

Förstå koden

Det finns två typer av procedurer - Underprocedurer och Funktionsprocedurer.

Delprocedurer

Makroinspelaren kan bara spela in underprocedurer. Ett underförfarande gör saker. De utför åtgärder som att formatera en tabell eller skapa en pivottabell, eller i rutnätsexemplet, ändra inställningarna för ditt aktiva fönster. Majoriteten av de förfaranden som skrivs är underprocedurer. Alla makron är underprocedurer.

En delprocedur börjar med a Sub uttalande och avslutas med en Avsluta Sub påstående. Procedurens namn följs alltid av parenteser.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalsktAvsluta Sub

Funktionsprocedurer

Ett funktionsförfarande returnerar ett värde. Detta värde kan vara ett enda värde, en array, ett cellintervall eller ett objekt. Funktioner utför vanligtvis någon typ av beräkning. Funktioner i Excel kan användas med funktionsguiden eller de kan anropas från delprocedurer.

123 Funktionskilon (pund som dubbel)Kilo = (pund/2,2)Avsluta funktion

Denna funktion kan användas i dialogrutan Infoga funktion i Excel för att konvertera pund till kilogram.

Skapa ett nytt förfarande

Innan du skapar din nya procedur, se till att du är i modulen där du vill lagra proceduren. Du kan skapa en ny procedur genom att klicka på Infoga -menyn, Procedur;

eller så kan du klicka på ikonen i verktygsfältet

Följande dialogruta visas

  1. Skriv namnet på din nya procedur i namnrutan - detta måste börja med en bokstav i alfabetet och kan innehålla bokstäver och siffror och högst 64 tecken.
  2. Du kan ha en Underprocedur, a Funktionsprocedur eller a Fast egendom procedur. (Egenskaper används i klassmoduler och anger egenskaper för ActiveX -kontroller som du kan ha skapat).
  3. Du kan göra omfattningen av proceduren antingen offentlig eller Privat. Om proceduren är offentlig (standard) kan den användas av alla moduler i projektet, men om proceduren är privat kan den bara användas av denna modul.
  4. Du kan deklarera lokala variabler i detta förfarande som statik (detta har att göra med variabelns omfattning och gör en variabel för lokal procedurnivå offentlig för hela modulen). Vi kommer inte att använda det här alternativet.

När du har fyllt i alla relevanta detaljer klickar du på OK.

Du skriver sedan in din kod mellan Sub- och End Sub -satserna.

ALTERNATIVT - du kan skriva Sub- och End Sub -satserna i din modul exakt som det visas ovan. Du behöver inte lägga ordet Public framför ordet sub - om detta ord utelämnas antas alla procedurer i modulen automatiskt vara Public.

Sedan skriver du Sub och sedan namnet på din procedur följt av parentes.

dvs:

1 Deltest ()

De Avsluta Sub uttalande visas automatiskt.

VBA -programmering | Kodgenerator fungerar för dig!

Skriva kod som är lätt att förstå och navigera

Lägger till kommentarer

Vana dig till att lägga in kommentarer i din kod för att senare påminna dig själv om kodens funktionalitet.

Du kan infoga en kommentar i koden men skriva en apostrof på tangentbordet eller så kan du slå på verktygsfältet Redigera och använda kommentarknappen som visas i verktygsfältet.

Högerklicka på verktygsfältet.

Välj Redigera.

Klicka på kommentarknappen för att infoga en kommentar i din kod.

NOTERA: Du brukar bara använda kommentarblocksknappen när du har några koderader som du vill kommentera (och inte radera). Det är lättare för en enda kommentar att använda en apostrof.

Indragning

En bra vana att komma in på är att infoga din kod så att det är lätt att läsa igenom koden och se de olika delarna av koden.

Det kan finnas många indragningsnivåer, beroende på logik i din kod.

UpperCase vs LowerCase

VBA justerar alla koder till ordentligt fodral så om du skriver ALL IN UPPCASER eller alla med små bokstäver kommer det att justera om din kod för att vara i rätt fall!

VBA -programmering | Kodgenerator fungerar för dig!

Automatisk komplettering

När du justerar din kod kommer du att märka att VBA försöker hjälpa dig genom att föreslå koden som du kan skriva. Detta är känt som AutoComplete.

Fel vid spärrning och felsökning

Det finns 4 typer av fel som kan uppstå när du skriver VBA -kod - syntaxfel, kompileringsfel, körtidsfel och logiska fel.

Syntaxfel

Dessa uppstår när du skriver koden fel. Detta förhindras i stor utsträckning av VBA genom att ha alternativet Syntaxcheck på. Detta är normalt på som standard men om du är avstängd, slå på det genom att gå till Verktyg, alternativ och klicka Automatisk syntaxkontroll.

Om du skriver koden fel (till exempel exkluderar något som ska finnas i koden) kommer en meddelanderuta att dyka upp medan du skriver koden som ger dig möjlighet att ändra koden.

Sammanställningsfel

Dessa uppstår när något saknas i koden som förhindrar att koden körs. Felet dyker inte upp när du skriver koden, men det uppstår när du försöker köra koden.

VBA -programmering | Kodgenerator fungerar för dig!

Körtidsfel

Dessa uppstår när du kör koden, och syntaxen och sammanställningen är korrekta, men något annat händer för att förhindra att koden körs korrekt.

I det här fallet finns inte Sheet4. Detta felmeddelande är mer användbart än kompileringsfelmeddelandena eftersom det ger dig möjlighet att felsöka koden och se varför den inte fungerar.

Klick Felsöka. Koden stannar vid felet och markerar felet med gult så att du kan korrigera ditt fel.

Ändra Sheet4 till Sheet2 (eftersom Sheet 2 finns och Sheet 4 inte existerar).

Tryck F5 eller klicka på Fortsätta knappen i verktygsfältet.

Logiska fel

Dessa är de svåraste att hitta. I deras fall är koden skriven korrekt men kodens faktiska logik är bristfällig, så du kanske inte får det resultat du vill ha från koden. För logiska fel är felinställning avgörande.

Det finns 2 typer av felfällor

Vid fel Gå till

Följande kod är att öppna dialogrutan File Open - det kommer att ge oss ett fel om användaren klickar Avbryt.

När du kör koden visas dialogrutan Öppna fil.

När du sedan klickar på Avbryt uppstår felet.

Följande felfälla fortsätter koden till kodens avslutningsfunktion och returnerar meddelandet.

Detta använder On Error GoTo för att avsluta funktionen.

När du kör koden och klickar på Avbryt visas meddelanderutan.

Vid fel Återuppta nästa

Om du lägger till Vid fel Återuppta nästa Uttalande i din kod, raden som innehåller felet ignoreras och koden fortsätter.

Till exempel, om användaren klickar på Avbryt i koden nedan, kommer koden inte att ge dig ett körtidsfel, det kommer bara att sluta utan att koden gör något ytterligare.

Det finns tillfällen då detta är mycket användbart, men det kan också vara mycket farligt under vissa omständigheter eftersom det inte returnerar ett meddelande om varför du fick ett fel.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave