VBA - Vraťte hodnotu z dílčí procedury

Tento tutoriál vás naučí, jak vrátit hodnotu z dílčí procedury ve VBA.

Dílčí procedura není navržena tak, aby vracela hodnotu - k tomu se používá procedura funkce. Může však nastat čas, kdy spustíte nějaký kód v dílčí proceduře, kde potřebujete získat hodnotu z této dílčí procedury. Způsob, jak to provést, je použít modul nebo globální proměnné nebo použít dílčí postup k naplnění listu aplikace Excel.

Vrácení hodnoty pomocí proměnných

Proměnné můžete deklarovat na úrovni modulu. Přitom lze tyto proměnné použít kdekoli v modulu a proměnné si zachovají své hodnoty. Chcete-li deklarovat proměnnou na úrovni modulu, jednoduše ji deklarujte v horní části modulu kódu:

123456789 Možnost ExplicitníDim dblQty jako DoubleDílčí test A ()'zavolejte SubB TestBVolejte TestB'zobrazit hodnotu proměnné v okně modulu.' show the variable value in the module windowDebug.Print dblQtyEnd Sub
1234 Dílčí testB ()'naplňte proměnnou moduludblQty = 900End Sub

Abychom to dali dohromady, spustili bychom TestA, což by zase volalo TestB a v bezprostředním okně by nám dalo hodnotu 900.

To by fungovalo pouze v rámci modulu, protože proměnná byla deklarována pomocí příkazu Dim na úrovni modulu.

Globální proměnná

Proměnnou můžete deklarovat na globální úrovni a používat ji v rámci modulů projektu.

Použití dílčího postupu k naplnění listu aplikace Excel

Níže uvedený dílčí postup přímo naplní rozsah A1 až C1 v listu aplikace Excel, čímž vrátí hodnoty do buněk z dílčího postupu.

12345 Sub PopulateRange ()Rozsah ("A1") = "Produkt"Rozsah ("B1") = "Množství"Rozsah ("C1") = "Cena"End Sub

Na tyto hodnoty pak můžete odkazovat v jiném postupu odkazováním na hodnoty buněk:

1234567 Sub RetrieveRange ()Dim produkt jako řetězec, množství tak dlouhé, cena jako dvojnásobekProdukt = rozsah („A1“)Quant = rozsah ("B1")Cena = rozsah („C1“)End Sub
wave wave wave wave wave