VBA - Zwróć wartość z procedury podrzędnej

Ten samouczek nauczy Cię, jak zwrócić wartość z procedury podrzędnej w VBA.

Procedura podrzędna nie jest przeznaczona do zwracania wartości - do tego służy procedura funkcji. Może się jednak zdarzyć, że uruchomisz jakiś kod w procedurze sub, gdzie będziesz potrzebować wartości z tej procedury sub. Sposobem na to jest użycie zmiennych modułowych lub globalnych lub użycie procedury podrzędnej do wypełnienia arkusza Excel.

Używanie zmiennych do zwracania wartości

Możesz deklarować zmienne na poziomie modułu. W takim przypadku zmienne te mogą być używane w dowolnym miejscu w module, a zmienne zachowują swoje wartości. Aby zadeklarować zmienną na poziomie modułu, po prostu zadeklaruj zmienną na górze modułu kodu:

123456789 Opcja WyraźnaDim dblQty jako DoublePodtestA()„zadzwoń pod testB”Zadzwoń do testu B'pokaż wartość zmiennej w oknie modułuDebug.Drukuj dblQtyNapis końcowy
1234 PodtestB()'wypełnij zmienną modułudblIlość = 900Napis końcowy

Aby je połączyć, uruchomilibyśmy TestA, który z kolei wywołałby TestB i dałby nam wartość 900 w bezpośrednim oknie.

Działałoby to tylko w module, ponieważ zmienna została zadeklarowana przy użyciu instrukcji Dim na poziomie modułu.

Zmienna globalna

Możesz zadeklarować zmienną na poziomie globalnym, aby używać jej w modułach projektu.

Korzystanie z procedury podrzędnej do wypełniania arkusza Excel

Poniższa procedura podrzędna bezpośrednio wypełni zakres od A1 do C1 w arkuszu Excela, zwracając w ten sposób wartości do komórek z procedury podrzędnej.

12345 Podzakres populacji()Zakres("A1") = "Produkt"Zakres("B1") = "Ilość"Zakres("C1") = "Koszt"Napis końcowy

Następnie możesz odwołać się do tych wartości w innej procedurze, odwołując się do wartości komórek:

1234567 Podrzędny zakres pobierania()Dim Product as String, Quantity as long, Cost as doubleProdukt = Zakres("A1")Ilość = Zakres("B1")Koszt = Zakres("C1")Napis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave