Praca z tablicami może bywać problematyczna szczególnie dla początkujących programistów VBA. W niniejszym blogu powstało już wiele wpisów dot. pracy z tablicami. Ostatnio jednak trafiłem na pytanie dot. przekazywania tablicy stałoelementowej pomiędzy różnymi procedurami, innymi zmiennymi, itp. Myślę, że warto krótko podsumować obowiązujące zasady szczególnie, że nie są to zasady skomplikowane.
Zacznijmy od prostej definicji bazowej tablicy:
1 | Dim arrStart(8) As Double |
Problem 1. Jak przekazać powyższą tablice do innej zmiennej? Istnieją dwa i tylko dwa dostępne scenariusze:
3 | Dim arrVariant As Variant |
oraz wariant drugi:
3 | Dim arrEmpty() As Double |
Problem 2. Jak przekazać tablicę do funkcji, procedury parametryzowanej lub właściwości? Tu obowiązują identyczne zasady jak w przekazywaniu tablicy pomiędzy zmiennymi:
2 | Function FunctionArray(arrInternal() As Double , arrOtherInternal As Variant ) |
8 | Dim arrFunction() As Double |
9 | arrFunction = FunctionArray(arrStart, arrVariant) |
Problem 3. Jak utworzyć funkcję, która będzie zwracać tablicę o określonej ilości elementów? W praktyce nie ma takiej możliwości. Jeżeli jednak przypiszemy do zwracenj wartości odpowiednią tablicę to funkcja stanie się funkcją tablicową.
2 | Function FunctionArray(arrInternal() As Double , arrOtherInternal As Variant ) As Variant |
3 | FunctionArray = arrInternal |
Brak komentarzy:
Prześlij komentarz