VBA - Vrnite vrednost iz podprocedure

Ta vadnica vas bo naučila, kako vrniti vrednost iz podprocedure v VBA.

Podproces ni namenjen vrnitvi vrednosti - za to se uporablja funkcijski postopek. Lahko pa pride do trenutkov, ko zaženete neko kodo v podproceduri, ko morate iz te podprocedure dobiti vrednost. To lahko storite tako, da uporabite modul ali globalne spremenljivke ali uporabite podproces za polnjenje Excelovega lista.

Uporaba spremenljivk za vrnitev vrednosti

Spremenljivke lahko razglasite na ravni modula. Pri tem lahko te spremenljivke uporabite kjer koli v modulu, spremenljivke pa ohranijo svoje vrednosti. Če želite razglasiti spremenljivko na ravni modula, preprosto razglasite spremenljivko na vrhu modula kode:

123456789 Možnost izrecnoZatemni dblQty kot dvojnoPod TestA ()'pokličite podmornico TestBPokličite TestB'v oknu modula prikaže vrednost spremenljivkeOdpravljanje napak Natisni dblQtyEnd Sub
1234 Sub TestB ()'napolni spremenljivko moduladblQty = 900End Sub

Če bi jih združili, bi zagnali TestA, ki bi nato poklical TestB in nam v neposrednem oknu dal vrednost 900.

To bi delovalo samo znotraj modula, saj je bila spremenljivka deklarirana z uporabo stavka Dim na ravni modula.

Globalna spremenljivka

Spremenljivko lahko razglasite na globalni ravni, da jo uporabite v celotnem modulu projekta.

Uporaba podpostopa za polnjenje Excelovega lista

Spodnji podproces bo neposredno zapolnil obseg A1 do C1 na vašem Excelovem listu in tako vrnil vrednosti v celice iz podpostopa.

12345 Sub PopulateRange ()Range ("A1") = "izdelek"Obseg ("B1") = "Količina"Razpon ("C1") = "Cena"End Sub

Na te vrednosti se lahko nato sklicujete v drugem postopku s sklicevanjem na vrednosti celic:

1234567 Sub RetrieveRange ()Zatemni izdelek kot niz, kolikor dolgo, cena kot dvojnoIzdelek = obseg ("A1")Količina = obseg ("B1")Cena = razpon ("C1")End Sub

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave