Deze zelfstudie behandelt de interactie met bladnamen in VBA.
Bladnaam ophalen
Bladnamen worden opgeslagen in de Naam eigendom van de Lakens of Werkbladen object. De bladnaam is de "tab"-naam die zichtbaar is onderaan Excel:
ActiveSheet-naam ophalen
Hierdoor wordt de ActiveSheet-naam in een berichtvenster weergegeven:
1 | MsgBox ActiveSheet.Name |
Bladnaam ophalen op indexnummer
Hierdoor wordt de eerste werkbladnaam in een berichtvenster weergegeven:
1 | MsgBox-bladen(1).Naam |
Hierdoor wordt de naam van het laatste werkblad in de werkmap weergegeven:
1 | MsgBox-bladen (Sheets.Count).Naam |
Bladnaam ophalen op codenaam
In de VBA-editor is er een optie om de "codenaam" van een blad te wijzigen. De codenaam is niet zichtbaar voor de Excel-gebruiker en is alleen te zien in de VBA-editor:
Als u in VBA met Spreadsheets werkt, kunt u verwijzen naar de gebruikelijke tabbladnaam:
1 | Spreadsheets ("Tabnaam"). Activeren |
of de VBA-codenaam:
1 | CodeName.Activeren |
Verwijzen naar de codenaam is wenselijk voor het geval de naam van het bladtabblad ooit verandert. Als u Excel-gebruikers toegang geeft tot het wijzigen van bladnamen, moet u verwijzen naar de codenaam in uw VBA-code, zodat een niet-overeenkomende naam van een bladtabblad geen fout veroorzaakt. Bladcodenamen worden hier in meer detail besproken.
Ga als volgt te werk om de bladnaam te krijgen met behulp van de VBA-codenaam:
1 | MsgBox CodeNaam.Naam |
Blad hernoemen
U kunt de naam van Spreadsheets wijzigen door de naam eigendom van de Lakens of Werkbladen object.
Hernoem ActiveSheet
1 | ActiveSheet.Name = "NieuweNaam" |
Blad hernoemen op naam
1 | Spreadsheets ("OldSheet").Naam = "NieuweNaam" |
Blad voor blad hernoemen Indexnummer
Hier gebruiken we 1 om het eerste blad in de werkmap te hernoemen.
1 | Bladen(1).Name = "NieuweNaam" |
Blad hernoemen op codenaam
Deze code hernoemt een blad met de VBA-codenaam (hierboven besproken):
1 | Component.Name = "NieuweNaam" |
Controleren of bladnaam bestaat
We hebben een functie gemaakt om te testen of er al een blad met een bepaalde naam bestaat.
123456789101112 | 'Test of er een bereik op een blad bestaat.'Laat bereik leeg om te testen of blad bestaat'Ingangen:' WhatSheet - Stringnaam van blad (ex "Blad1")' WhatRange (optioneel, standaard = "A1") - Stringnaam van bereik (ex "A1")Functiebereik bestaat (WhatSheet As String, optioneel ByVal WhatRange As String = "A1") As BooleanGedimde test als bereikBij fout Hervatten volgendeStel test in = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Err.Number = 0Bij fout Ga naar 0Functie beëindigen |
De functie retourneert WAAR als het blad bestaat, of ONWAAR als dat niet het geval is.
Gebruik de functie als volgt:
123 | Sub Test_SheetExists()MsgBox RangeExists("setup")Einde sub |
Blad kopiëren en hernoemen
Dit voorbeeld komt uit ons artikel over het kopiëren van bladen.
Na het kopiëren en plakken van een blad, wordt het nieuw gemaakte blad de ActiveSheet. Dus om een gekopieerd blad te hernoemen, gebruik je gewoon ActiveSheet.Name:
12345678 | Sub CopySheetRename2()Bladen ("Blad1"). Kopiëren na: = Bladen (Vellen. Aantal)Bij fout Hervatten volgendeActiveSheet.Name = "LastSheet"Bij fout Ga naar 0Einde sub |
Opmerking: we hebben foutafhandeling toegevoegd om fouten te voorkomen als de bladnaam al bestaat.