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 |