8.5 Range-objecten
Range-objecten zijn wellicht de meest gebruikte. Daarom nog enkele wetenswaardigheden.
8.5.1. De eigenschap 'Range'
Een Range-object is meestal het resultaat van de eigenschap Range. Deze nu kan op 2 manieren gebruikt worden:
8.5.2. De eigenschappen Cells, Rows en Columns
De eigenschappen Cells, Rows en Columns leveren zelf een bereikobject als resultaat. Ze kunnen gebruikt worden bij het 'Application'-object, een 'Range'-object of een 'Worksheet'-object. Je kan de waarde van deze eigenschappen lezen en niet instellen. Ze behandelen een bereikobject als een verzameling. Ook deze eigenschappen kan je op de 2 bovengenoemde manieren gebruiken.
| Application.Rows Range("A10:C10").Columns Worksheets("1999").Cells
|
alle rijen van het actieve
werkblad(65 535) alle kolommen van het celbereik(3) alle cellen van het werkblad "1999"(16 777 216) |
Voorbeelden uit te voeren ter controle in het 'venster Direct':
| Range("D5:F10").Range("B2:C3").Select levert E6;F7 als resultaat op ?Selection.Columns.Count 2 ?Cells(1,4).Address $D$1 ?Cells(4).Address $D$1 ?Selection.Cells(1,4).Address $H$6 ?Selection.Cells(4).Address $F$7 ?Columns.Count 256 ?Range("D5").Cells(1,4).Address $G$5 ?Range("D5").Cells(0,1).Address $D$4 |
?Selection.Columns.Count 2 Selection.Rows(1).Select ?Selection.Address $E$6:$F$6 ?Range("B2:E10").Cells(-1,1).Address $D$3 ?Range("B2:E10").Cells(1,1).Address $B$2 ?Range("B2:C10").Rows.Count 9 Range("B2:C10").Rows(4).formula = 5 B5 en C5 krijgen de waarde 5 ?Range("B5:F10").Cells.Count 30 Range("B5:F10").Select ?Selection.Cells(Selection.Cells.Count).Address $F$10 |
8.5.3. Benoemde bereiken
| Dim x As Range Set x = Range("a1:a10") x.Name = "ads" [ads].Value = 20 |
Nadat je een objectvariabele van het type Range hebt gedefinieerd geef je de eigenschap Name de waarde die je voor het bereik wil. Nadien kan je bij het gebruiken van eigenschappen de bereikomschrijving vervangen door de naam tussen vierkante haakjes. |
8.5.3. Samengestelde bereiken
| Dim x, y, z As Range Set x = Range("a1:a10") Set y = Range("c1:c10") x.Name = "zone1" Set z = Application.Union(Range("zone1"), y) z.Formula = Int(Rnd * 51) + 50 |
Met de methode Union van het object Application kan je bereiken samenvoegen. Wil je een benoemd bereik in de reeks opnemen dan verwijs je ernaar met de eigenschap Range en de naam tussen haakjes. |