VBA - Returnează o valoare dintr-o procedură secundară

Acest tutorial vă va învăța cum să returnați o valoare dintr-o procedură secundară în VBA.

O procedură secundară nu este concepută pentru a returna o valoare - pentru aceasta este utilizată o procedură funcțională. Cu toate acestea, poate exista un moment în care executați un cod într-o procedură secundară în care trebuie să obțineți o valoare din acea procedură secundară. Modul de a face acest lucru este să utilizați modul sau variabile globale sau să utilizați o subprocedură pentru a completa o foaie Excel.

Utilizarea variabilelor pentru a returna o valoare

Puteți declara variabile la nivel de modul. Atunci când faceți acest lucru, acele variabile pot fi utilizate oriunde în cadrul modulului și variabilele își păstrează valorile. Pentru a declara o variabilă la nivel de modul, pur și simplu declarați variabila din partea de sus a modulului de cod:

123456789 Opțiune explicităDim dblQty ca DubluSub TestA ()'apelați sub TestB subApelați TestB'afișează valoarea variabilă în fereastra modululuiDebug.Print dblQtySfârșitul Sub
1234 Sub TestB ()'populează variabila modululuidblQty = 900Sfârșitul Sub

Pentru a pune acestea împreună, am rula TestA, care la rândul său ar numi TestB și ne-ar da valoarea 900 în fereastra imediată.

Acest lucru ar funcționa numai în cadrul modulului, deoarece variabila a fost declarată folosind instrucțiunea Dim la nivelul modulului.

Variabilă globală

Puteți declara variabila la nivel global pentru ao utiliza în modulele de proiect.

Utilizarea unei proceduri secundare pentru a popula o foaie Excel

Procedura secundară de mai jos va popula direct intervalul A1 până la C1 în foaia dvs. Excel, returnând astfel valorile în celule din procedura secundară.

12345 Sub PopulateRange ()Range ("A1") = "Produs"Range ("B1") = "Cantitate"Range ("C1") = "Cost"Sfârșitul Sub

Apoi, puteți face referire la aceste valori într-o altă procedură, referindu-vă la valorile celulei:

1234567 Sub RetrieveRange ()Reduceți produsul ca șir, Cant cât timp, Costul dubluProdus = Gama („A1”)Quant = Range („B1”)Cost = Interval („C1”)Sfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave