środa, 22 lipca 2015

Przekazywanie tablic pomiędzy procedurami i zmiennymi

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: Problem 1. Jak przekazać powyższą tablice do innej zmiennej? Istnieją dwa i tylko dwa dostępne scenariusze: oraz wariant drugi: 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: 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ą.

piątek, 3 lipca 2015

Względna pozycja komórki wewnątrz zakresu Range

W jaki sposób odnaleźć w najprostszy sposób informację o numerze wiersza i kolumny dla określonej komórki lecz nie w relacji do arkusza, a w relacji do innego wskazanego zakresu? Zaprezentuję Państwu dwa przykładowe rozwiązania dla tak postawionego zadania. Zagadnienie to pojawiło się ostatnio na forum programistycznym i myślę, że warto przypomnieć szczególnie drugą technikę pracy z zakresami.

Wspólne założenia do projektu prezentuje poniższy startowy kod wraz z komentarzami:


Wariant 1. Najprostszy, w którym wykorzystamy różnicę pomiędzy numerami wierszy zakresu odniesienia i wskazanej komórki:


Wariant 2. W którym tworzymy tymczasowy zakres od początku zakresu odniesienia do wskazanej komórki i wyliczamy odpowiednio ilość kolumn i wierszy zakresu tymczasowego: