Excel VBA Subroutine: Hur man ringer Sub i VBA med exempel

Vad är en subrutin i VBA?

A Subrutin i VBA är en kodbit som utför en specifik uppgift som beskrivs i koden men som inte returnerar ett resultat eller ett värde. Subrutiner används för att bryta ner stora bitar av kod i små hanterbara delar. Subrutiner kan återkallas flera gånger från var som helst i programmet.

Låt oss säga att du har skapat ett användargränssnitt med textrutor för att acceptera användarindata. Du kan skapa en subrutin som rensar innehållet i textrutorna. En subrutin för VBA-samtal är lämplig i ett sådant scenario eftersom du inte vill returnera några resultat.

Varför använda subrutiner

  • Bryt upp kod i liten hanterbar kod: Ett genomsnittligt datorprogram har tusentals och åter tusentals källkodsrader. Detta introducerar komplexitet. Subrutiner hjälper till att lösa detta problem genom att dela upp programmet i små hanterbara bitar av kod.
  • Återanvändning av kod. Låt oss säga att du har ett program som behöver komma åt databasen, nästan alla fönster i programmet kommer att behöva interagera med databasen. Istället för att skriva separat kod för dessa fönster kan du skapa en funktion som hanterar alla databasinteraktioner. Du kan sedan anropa det från vilket fönster du vill.
  • Subrutiner och funktioner är självdokumenterande. Låt oss säga att du har en funktion calculateLoanInterest och en annan som säger connectToDatabase. Genom att bara titta på namnet på subrutinen/funktionen kommer programmeraren att kunna berätta vad programmet gör.

Regler för namngivning av subrutiner och funktioner

För att använda subrutiner och funktioner finns det regler som man måste följa.

  • Namnet på en subrutin eller VBA-anropsfunktion kan inte innehålla mellanslag
  • Ett Excel VBA Call Sub- eller funktionsnamn ska börja med en bokstav eller ett understreck. Det kan inte börja med ett nummer eller ett specialtecken
  • En subrutin eller funktionsnamn kan inte vara ett nyckelord. Ett nyckelord är ett ord som har speciell betydelse i VBA. Ord som Privat, Sub, Funktion och Slut, etc. är alla exempel på nyckelord. Kompilatorn använder dem för specifika uppgifter.

VBA-subrutinsyntax

Du måste aktivera fliken Utvecklare i Excel för att följa detta exempel. Om du inte vet hur du aktiverar fliken Utvecklare läs sedan handledningen på VBA Operatorer

HÄR i syntaxen,

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

Syntaxförklaring

Koda Handling
  • "Privat Sub mySubRoutine(...)"
  • Här används nyckelordet "Sub" för att deklarera en subrutin som heter "mySubRoutine" och starta subrutinen.
  • Nyckelordet Privat används för att ange subrutinens omfattning
  • "ByVal arg1 As String, ByVal arg2 As String" :
  • Den deklarerar två parametrar för strängdatatypnamn arg1 och arg2
  • "End Sub"
  • "End Sub" används för att avsluta subrutinen

Följande subrutin accepterar för- och efternamnet och visar dem i en meddelanderuta.

Nu ska vi programmera och köra denna underprocedur. Låt se det här.

Hur man ringer Sub i VBA

Nedan följer en steg-för-steg-process om hur man ringer sub i VBA:

  1. Designa användargränssnittet och ställ in egenskaperna för användarkontrollerna.
  2. Lägg till subrutinen
  3. Skriv klickhändelsekoden för kommandoknappen som anropar subrutinen
  4. Testa applikationen

Steg 1) Användargränssnitt

Designa användargränssnittet enligt bilden nedan.

Hur man ringer Sub i VBA

Ställ in följande egenskaper. Egenskaperna som vi ställer in:

S / N kontroll Fast egendom Värde
1 Kommandoknapp1 Namn btnDisplayFullnamn
2 Bildtext Subrutin för fullständigt namn


Ditt gränssnitt bör nu se ut som följer.

Hur man ringer Sub i VBA

Steg 2) Lägg till subrutin

  1. Tryck på Alt + F11 för att öppna kodfönstret
  2. Lägg till följande subrutin
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

HÄR i koden,

Koda Actions
  • "Privat Sub displayFullName(...)"
  • Den deklarerar en privat subrutin displayFullName som accepterar två strängparametrar.
  • "ByVal förnamn som sträng, ByVal efternamn som sträng"
  • Den deklarerar två parametervariabler firstName och lastName
  • MsgBox förnamn Efternamn"
  • Det kallar MsgBox inbyggd funktion för att visa en meddelanderuta. Den skickar sedan variablerna 'firstName' och 'lastName' som parametrar.
  • Et-tecken "&" används för att sammanfoga de två variablerna och lägga till ett tomt mellanslag mellan dem.

Steg 3) Ringer subrutinen

Anropar subrutinen från kommandoknappens klickhändelse.

  • Högerklicka på kommandoknappen som visas i bilden nedan. Välj Visa kod.
  • Kodeditorn öppnas

Hur man ringer Sub i VBA

Lägg till följande kod i kodredigeraren för klickhändelsen för kommandoknappen btnDisplayFullName.

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

Ditt kodfönster ska nu se ut som följer

Hur man ringer Sub i VBA

Spara ändringarna och stäng kodfönstret.

Steg 4) Testar koden

Stäng av designläget i verktygsfältet för utvecklare. Enligt nedanstående.

Hur man ringer Sub i VBA

Steg 5) Klicka på kommandoknappen 'FullName Subroutine'.

Du kommer att få följande resultat

Hur man ringer Sub i VBA

Ladda ner ovanstående Excel-kod

Sammanfattning

  • En subrutin är en kod som utför en specifik uppgift. En subrutin returnerar inte ett värde efter exekvering
  • Subrutiner erbjuder kodåteranvändning
  • Subrutiner hjälper till att bryta ner stora bitar av kod till liten hanterbar kod.