Šī apmācība iemācīs jums atgriezt vērtību no apakšprocedūras VBA.
Apakšprocedūra nav paredzēta, lai atgrieztu vērtību - tam tiek izmantota funkciju procedūra. Tomēr var gadīties, ka apakšprocedūrā izmantojat kādu kodu, un jums ir jāiegūst vērtība no šīs apakšprocedūras. Veids, kā to izdarīt, ir izmantot moduli vai globālos mainīgos vai izmantot apakšprocedūru, lai aizpildītu Excel lapu.
Mainīgo izmantošana vērtības atdošanai
Mainīgos varat deklarēt moduļa līmenī. To darot, šos mainīgos var izmantot jebkurā moduļa vietā, un mainīgie saglabā savas vērtības. Lai deklarētu mainīgo moduļa līmenī, vienkārši deklarējiet mainīgo koda moduļa augšpusē:
123456789 | Skaidrs variantsDim dblQty kā DoubleApakštestsA ()"zvaniet uz TestB apakšnodaļuZvaniet TestB'parāda mainīgā vērtību moduļa logāAtkļūdot. Drukāt dblQtyBeigu apakš |
1234 | ApakšpārbaudeB ()'aizpildiet moduļa mainīgodblQty = 900Beigu apakš |
Lai tos saliktu kopā, mēs palaistu TestA, kas savukārt izsauktu TestB un tiešajā logā dotu mums vērtību 900.
Tas darbotos tikai moduļa ietvaros, jo mainīgais ir deklarēts, izmantojot moduļa līmeņa paziņojumu Dim.
Globālais mainīgais
Mainīgo varat deklarēt globālā līmenī, lai to izmantotu visos projekta moduļos.
Apakšprocedūras izmantošana Excel lapas aizpildīšanai
Tālāk norādītā apakšprocedūra jūsu Excel lapā tieši aizpildīs diapazonu no A1 līdz C1, tādējādi atgriežot vērtības no apakšprocedūras šūnām.
12345 | Sub populateRange ()Diapazons ("A1") = "Produkts"Diapazons ("B1") = "Daudzums"Diapazons ("C1") = "Izmaksas"Beigu apakš |
Pēc tam varat atsaukties uz šīm vērtībām citā procedūrā, atsaucoties uz šūnu vērtībām:
1234567 | Sub RetrieveRange ()Aptumšojiet produktu kā virkni, tik ilgi, cik maksā, dubultāProdukts = diapazons ("A1")Daudzums = diapazons ("B1")Izmaksas = diapazons ("C1")Beigu apakš |