In dit artikel wordt het ActiveSheet-object in VBA besproken. Er wordt ook besproken hoe u werkbladen kunt activeren, selecteren en er naartoe kunt gaan (en nog veel meer). Lees onze volledige VBA-werkbladengids voor meer informatie over het werken met werkbladen in VBA.
ActiveSheet
In VBA verwijst ActiveSheet naar het momenteel actieve werkblad. Er kan slechts één blad tegelijk actief zijn.
Werkblad activeren (De ActiveSheet instellen)
Gebruik Worksheet.Activate om de ActiveSheet in te stellen:
1 | Werkbladen ("Invoer"). Activeren |
De opdracht Blad activeren zal feitelijk naar het blad "gaan", waardoor het zichtbare blad wordt gewijzigd.
In het bovenstaande voorbeeld wordt de naam Blad (tabblad) gebruikt. In plaats daarvan kunt u de VBA-codenaam voor het werkblad gebruiken:
1 | Blad1.Activeren |
ActiveSheet-naam
Om de ActiveSheet-naam te krijgen:
1 | msgbox ActiveSheet.name |
Geselecteerde bladen versus ActiveSheet
Op elk moment kan slechts één werkblad de ActiveSheet zijn. Er kunnen echter meerdere werkbladen tegelijk worden geselecteerd.
Wanneer meerdere werkbladen zijn geselecteerd, wordt alleen het "bovenste" werkblad als actief beschouwd (de ActiveSheet).
Selecteer werkblad
Als u een werkblad wilt selecteren in plaats van het te activeren. Gebruik in plaats daarvan .Select.
Selecteer werkblad op tabbladnaam
Dit selecteert een werkblad op basis van de naam van het bladtabblad
1 | Bladen ("Invoer"). Selecteer |
Selecteer werkblad op indexnummer
Dit selecteert een werkblad op basis van zijn positie ten opzichte van andere tabbladen
1 | Werkbladen(1).Selecteer |
Selecteer werkblad met VBA-codenaam
1 | Blad1.Selecteer |
Door werkbladen op codenaam te selecteren, kunnen fouten worden voorkomen die worden veroorzaakt door wijzigingen in de werkbladnaam.
Selecteer huidig werkblad
Gebruik het ActiveSheet-object om het huidige werkblad te selecteren:
1 | ActiveSheet.Selecteer |
Meer Activeer / selecteer bladvoorbeelden
Zet ActiveSheet op Variabel
Hiermee wordt de ActiveSheet toegewezen aan een werkbladobjectvariabele.
123 | Dim ws als werkbladStel ws = ActiveSheet in |
ActiveSheet-naam wijzigen
Hierdoor wordt de ActiveSheet-naam gewijzigd.
1 | ActiveSheet.Name = "NieuweNaam" |
Met ActiveSheet
Door de With-instructie te gebruiken, kunt u uw code stroomlijnen wanneer u met objecten werkt (zoals Spreadsheets of ActiveSheet).
12345 | Met ActiveSheet.Name = "StartFresh".Cellen.Wissen.Bereik("A1").Waarde = .NaamEindigt met |
Merk op hoe u "ActiveSheet" niet voor elke regel code hoeft te herhalen. Dit kan enorm veel tijd besparen bij het werken met een lange lijst met opdrachten.
Doorloop geselecteerde bladen
De volgende macro loopt door alle geselecteerde bladen en toont hun namen.
12345678 | Sub GetSelectedSheetsName()Dim ws als werkbladVoor elke ws in ActiveWindow.SelectedSheetsMsgBox ws.NaamVolgende wsEinde sub |
Ga naar volgend blad
Deze code gaat naar het volgende blad. Als de ActiveSheet het laatste werkblad is, gaat het naar het eerste werkblad in de werkmap.
12345 | Als ActiveSheet.Index = Worksheets.Count DanWerkbladen(1).ActiverenAndersActiveSheet.Volgende.ActiverenStop als |