VBA - atgrieziet vērtību no apakšprocedūras

Šī 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š

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave