Range

Het range object is veelvoorkomend in de VBA code, het geeft de cel of cellen op je werkblad weer.

Range object

Voor alle voorbeelden is een besturingselement knop aangemaakt, Lees hier hoe je dat doet. Hier koppel ik de macro knop aan, zodat je deze code hebt:
Sub Knop()
End Sub

Elke opgegeven code kan hiertussen gezet worden om het uit te voeren.

.Value

Eerst gaan we kijken hoe je een opgegeven waarde (Excelweb) in een bepaalde cel (A1) zet. Dit doe je middels de volgende regel:
Range("A1").Value = "Excelweb"
Om meerdere bereiken in te vullen gebruik je deze regel:
Range("A1:A2,B3:B4").Value = "Excelweb"
Als je een gedefineerde naam hebt, kan je die middels deze regel veranderen:
Range("Naam").Value = "Excelweb"

.Select

Je kan ook een bereik selecteren. Dit doe je middels het range object, gevolgd door .Select, zie de onderstaande regel om A1:A4 te selecteren:
Range("A1:A4").Select
Je kan ook in een keer het hele werkblad selecteren, dit doe je middels de volgende code:
Cells.Select
Het hele werkblad selecteren is echter geen .Range meer.
Om op een ander werkblad een bereik te selecteren kan je range combineren met Worksheets, met de volgende regel selecteer je A1:A4 op het in volgorde 2de werkblad:
Worksheets(2).Range("A1:A4").Select
Dit werkt echter niet, omdat je eerst het werkblad moet activeren. Dit is de volledige code:
Worksheets(2).Activate
Worksheets(2).Range("A1:A4").Select

Je kan ook de huidige regio met ingevulde cellen selecteren. Hiervoor zet je voor .Range de benaming .CurrentRegion.
Als voorbeeld deze regel:
Range("A1").CurrentRegion.Select
Hiermee krijg je dit resultaat:
Resultaat bij .CurrentRegion bij .Range

.Copy / .Paste

Selecteren is mooi maar dan wil je er ook iets meer mee kunnen. Hier leg ik je uit hoe je de selectie kan kopiëren om ergens anders te plakken. Je plakt simpel weg deze code onder het selecteren van de cel:
Selection.Copy
Je krijgt dan deze volledige code:
Range("A1:A4").Select
Selection.Copy

Deze selectie wordt vanaf B1 geplakt. Eerst selecteer je B1 en dan geef je de opdracht om te plakken:
Range("B1").Select
ActiveSheet.Paste

De volledige code is dus:
Range("A1:A4").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste

.Clear

Nu hebben beschreven hoe je een cel kan vullen, maar het is ook handig dat je deze weer leeg kan maken.
Met de volgende regel maak je het bereik A1:C6 leeg:
Range("A1:C6").Clear

.Clear verwijderd ook de opmaak, om alleen de inhoud te verwijderen kun je .ClearContents gebruiken.

Leave a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *