Range to obiekt w kodzie VBA oznaczający komórkę lub zakres komórek arkusza.
Dla pojedynczej komórki zapis wygląda np. Range(“A1”)
Dla ciągłego zakresu komórek – np. Range(“A1:C10”) lub Range(“A1″,”C10”) – gdzie A1 to adres komórki w lewym górnym rogu, natomiast C1 to komórka wyznaczająca prawy dolny róg.
Można też przypisać całe kolumny lub wiersze, odwołując się do oznaczenia kolumny lub numeru wiersza.
Np. Range(“1:1”) – odpowiada zakresowi wiersza pierwszego
Range(“A:C”) – zakres kolumn A do C.
W kodzie można odwoływać się także do nazw zdefiniowanych w Menedżerze nazw. Jeżeli mamy taki zakres o nazwie np.MojeKomorki, to można się odwołać do niego poprzez Range(“MojeKomorki”).
Chcąc zadeklarować zakres jako zmienną w kodzie VBA korzystamy z:
Dim ZakresA As Range Dim ZakresB As Range |
Przypisanie wartości (czyli zakresu komórek) do zmiennej typu Range musi być, jak w przypadku wszystkich obiektów VBA, poprzedzone słowem kluczowym Set.
Set ZakresA=Range(“1:1”) Set ZakresB = Range(“A:A”) |
W odniesieniu zakresu Range często wykorzystuje się funkcje:
-
- Intersect(Arg1 as Range, Arg1 as Range,…) as Range
funkcja zwracająca zakres będący częścią wspólną zakresów wprowadzonych jako argumenty - Union(Arg1 as Range, Arg1 as Range,…) as Range
funkcja zwracająca zakres będący sumą zakresów wprowadzonych jako argumenty
- Intersect(Arg1 as Range, Arg1 as Range,…) as Range
Obie funkcje przydają się szczególnie w kodzie związanym ze zdarzeniami arkusza.