VBA - Retourneer een waarde van een subprocedure

In deze zelfstudie leert u hoe u een waarde uit een subprocedure in VBA kunt retourneren.

Een subprocedure is niet ontworpen om een ​​waarde terug te geven - daar wordt een functieprocedure voor gebruikt. Er kan echter een moment zijn waarop u code uitvoert in een subprocedure waarbij u een waarde uit die subprocedure moet halen. De manier om dit te doen is om Module of Globale variabelen te gebruiken of om een ​​subprocedure te gebruiken om een ​​Excel-blad te vullen.

Variabelen gebruiken om een ​​waarde te retourneren

U kunt variabelen declareren op moduleniveau. Daarbij kunnen die variabelen overal in de module worden gebruikt en behouden de variabelen hun waarden. Om een ​​variabele op moduleniveau te declareren, declareert u eenvoudig de variabele bovenaan uw codemodule:

123456789 Optie explicietDim dblQty als DoubleSubtestA()'bel de TestB-sub'Bel TestB'toon de variabele waarde in het modulevenster'Debug.Print dblQtyEinde sub
1234 SubtestB()'vul de modulevariabele in'dblQty = 900Einde sub

Om deze samen te voegen, zouden we TestA uitvoeren, die op zijn beurt TestB zou noemen en ons de waarde van 900 in het directe venster zou geven.

Dit zou alleen werken binnen de module, omdat de variabele is gedeclareerd met behulp van de Dim-instructie op moduleniveau.

Globale variabele

U kunt de variabele op globaal niveau declareren om deze in uw projectmodules te gebruiken.

Een subprocedure gebruiken om een ​​Excel-blad te vullen

De onderstaande subprocedure vult bereik A1 tot C1 rechtstreeks in uw Excel-blad in, waardoor waarden naar de cellen worden geretourneerd vanuit de subprocedure.

12345 Sub PopulateRange()Bereik ("A1") = "Product"Bereik ("B1") = "Aantal"Bereik ("C1") = "Kosten"Einde sub

U kunt vervolgens in een andere procedure naar die waarden verwijzen door naar de celwaarden te verwijzen:

1234567 Sub ophaalbereik()Dim Product als String, Quant zo lang, Kosten als dubbelProduct = bereik ("A1")Quant = Bereik ("B1")Kosten = Bereik ("C1")Einde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave