piątek, 10 maja 2013

Zapomniany parametr właściwości Address

Nawiązując do ostatnio opublikowanego tematu dot. zapomnianego parametru metody Select tym razem krótko o zapomnianych parametrach właściwości Address obiektu Range (zakresu komórek).
Myślę, że każdy z programistów używa właściwości Range.Address w celu kontroli czy też porównania określonych zakresów. Nie każdy jednak wykorzystuje dodatkowe parametry jakie ta właściwość posiada.

Korzystając z pomocy VBA przytoczę ogólną składnię tej właściwości:
1expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, _
2        External, RelativeTo)

A wynik działania poszczególnych parametrów- w postaci komentarzy wewnątrz kodu- prezentuje poniższe przykładowe makro. I myślę, że poniższy kod będzie wystarczającym wyjaśnieniem dot. wykorzystania pełnych możliwości właściwości Range.Address.
01Sub Zapomniane_parametry_Address()
02Dim RNG As Range
03Set RNG = Worksheets("Arkusz1").Cells(1, 1)
04    Debug.Print RNG.Address()
05        'wynik: $A$1
06    Debug.Print RNG.Address(RowAbsolute:=False)
07        'wynik: $A1
08    Debug.Print RNG.Address(ColumnAbsolute:=False)
09        'wynik: A$1
10    Debug.Print RNG.Address(False, False)
11        'wynik: A1
12    Debug.Print RNG.Address(ReferenceStyle:=xlR1C1)
13        'wynik: R1C1
14    Debug.Print RNG.Address(ReferenceStyle:=xlR1C1, _
15        RowAbsolute:=False, _
16        ColumnAbsolute:=False, _
17        RelativeTo:=Worksheets(1).Cells(3, 3))
18        'wynik: R[-2]C[-2]
19    
20    'ale uwaga
21    Debug.Print RNG.Address(ReferenceStyle:=xlR1C1, _
22            RelativeTo:=Worksheets(1).Cells(3, 3))
23        'wynik: R1C1, brak arugmentów False dla kolumny
24        'i wiersza zmienia wynik
25 
26End Sub

Brak komentarzy:

Prześlij komentarz