VBA - Returnera ett värde från ett delprocedur

Denna handledning lär dig hur du returnerar ett värde från en delprocedur i VBA.

En delprocedur är inte utformad för att returnera ett värde - det är vad ett funktionsförfarande används för. Det kan dock finnas en tid då du kör någon kod i en delprocedur där du behöver hämta ett värde från den underproceduren. Sättet att göra detta är att använda modul eller globala variabler eller att använda en delprocedur för att fylla i ett Excel -ark.

Använda variabler för att returnera ett värde

Du kan deklarera variabler på modulnivå. När du gör det kan dessa variabler användas var som helst inom modulen och variablerna behåller sina värden. För att deklarera en variabel på modulnivå, deklarera helt enkelt variabeln högst upp i din kodmodul:

123456789 Alternativ ExplicitDim dblQty som DoubleSubtestA ()'ring TestB -subRing TestB'visa variabelvärdet i modulfönstretDebug.Print dblQtyAvsluta Sub
1234 Subtest B ()'fyll i modulvariabelndblQty = 900Avsluta Sub

För att sätta ihop dessa skulle vi köra TestA, som i sin tur skulle ringa TestB och ge oss värdet 900 i det omedelbara fönstret.

Detta fungerar bara inom modulen, eftersom variabeln har deklarerats med Dim -satsen på modulnivå.

Global variabel

Du kan deklarera variabeln på global nivå för att använda den i dina projektmoduler.

Använda ett underförfarande för att fylla i ett Excel -ark

Delproceduren nedan fyller direkt intervall A1 till C1 i ditt Excel -blad och returnerar därmed värden till cellerna från delproceduren.

12345 Sub PopulateRange ()Range ("A1") = "Produkt"Område ("B1") = "Kvantitet"Område ("C1") = "Kostnad"Avsluta Sub

Du kan sedan referera till dessa värden i en annan procedur genom att referera till cellvärdena:

1234567 Sub RetrieveRange ()Dim Produkt som sträng, kvantitet så lång, kostnad som dubbeltProdukt = intervall ("A1")Quant = Range ("B1")Kostnad = intervall ("C1")Avsluta Sub

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

wave wave wave wave wave