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:
.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.