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:
4 | Set Zakres = Range( "E5:J20" ) |
5 | Set Komorka = Range( "G10" ) |
9 | If Intersect(Komorka, Zakres) Is Nothing Then Exit Sub |
Wariant 1. Najprostszy, w którym wykorzystamy różnicę pomiędzy numerami wierszy zakresu odniesienia i wskazanej komórki:
1 | Debug.Print Komorka.Row - Zakres.Row + 1 |
2 | Debug.Print Komorka.Column - Zakres.Column + 1 |
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:
1 | Debug.Print Range(Zakres.Cells(1), Komorka).Rows.Count |
2 | Debug.Print Range(Zakres(1), Komorka).Columns.Count |