Hoe kan ik een blad hernoemen met vba in excel?
Wanneer u een nieuw blad aan een werkmap toevoegt, heeft u de mogelijkheid om het een naam te geven. Maar u kunt de naam ook op elk gewenst moment wijzigen met behulp van de naameigenschap van het werkblad. In deze zelfstudie bekijken we verschillende manieren om een blad of meerdere bladen te hernoemen met behulp van VBA-code.
Stappen om de naam van een blad te wijzigen met behulp van VBA-code
- Definieer eerst het blad waarvan u de naam wilt wijzigen met behulp van het werkbladobject.
- Daarna moet u (.Name) gebruiken om toegang te krijgen tot de naameigenschap die u wilt wijzigen.
- Typ vervolgens een gelijkteken om VBA de waarde te vertellen die u wilt gebruiken om de naam van het blad te wijzigen.
- Typ aan het einde de naam van het blad dat u wilt gebruiken.
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Hernoem actief blad
Als u het actieve blad een andere naam wilt geven, hoeft u in dit geval de bladnaam niet in te stellen, maar moet u het ActiveSheet-object gebruiken dat VBA vertelt om op dit moment naar het actieve blad te verwijzen. Hier is de code.
Activesheet.Name = "mySheet"
Let op: Om een blad een andere naam te geven, hoeft u het niet te activeren.
Hernoem een blad met behulp van het bladnummer
Zoals u weet heeft elk blad een nummer, afhankelijk van de positie in de werkmap. Stel dat u het blad op het vijfde nummer wilt hernoemen, dan zou de code zijn.
Sheets(5).Name = "mySheet5"
Wanneer u de bovenstaande macro uitvoert , wordt de naam van het blad op het vijfde nummer gewijzigd.
Controleer of het blad bestaat voordat u de naam wijzigt
Als u probeert een werkblad te hernoemen dat niet bestaat, geeft VBA een foutmelding, zoals hieronder.
De oplossing voor dit probleem is de volgende code die FOR EACH gebruikt, die door alle werkbladen kan lopen om het blad te vinden dat u definieert en vervolgens de naam van dat blad te wijzigen.
Sub check_sheet_rename() Dim ws As Worksheet Dim mySheet As String Dim SheetName As String mySheet = InputBox("enter the name of the sheet that you want to rename.") SheetName = InputBox("Enter new name for the sheet.") For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Name = SheetName End If Next ws End Sub
Hernoem een blad met de waarde van een cel of bereik
U kunt een blad ook hernoemen door de waarde van een cel over te nemen. Stel dat de waarde in cel A1 staat.
Sheets("Sheet1").name = Range("A1").Value
Maar stel dat u meerdere bladen een naam wilt geven op basis van de waarden in een celbereik. In dit geval zou u een dergelijke code moeten hebben.
Sub vba_sheet_rename_multiple() Dim wsCount As Long Dim rCount As Long Dim ws As Worksheet Dim name As Range Dim i As Long wsCount = ThisWorkbook.Worksheets.Count rCount = Range("A1:A10").Rows.Count 'Checks if the count of the names provided is less _ or more than the sheets in the workbook If wsCount <> rCount Then MsgBox "There's some problem with the names provided." Exit Sub Else 'Check if any of the cells in the name range is empty. For Each name In Range("A1:A10") If IsEmpty(name) = True Then i = i + 1 End If Next name If i > 0 Then MsgBox "There's is a blank cell in the names range." Exit Sub End If End If 'rename each sheet using the value from the range cell by cell. i = 1 For Each ws In ThisWorkbook.Worksheets ws.name = Range("A1:A10").Cells(i, 1).Value i = 1 + i Next ws End Sub
Wanneer u deze VBA-code uitvoert, wordt eerst gecontroleerd of de cellen in het bereik gelijk zijn aan het aantal bladen dat u in de werkmap heeft. Daarna wordt gecontroleerd of alle cellen in het door u opgegeven bereik waarden hebben of niet. En hernoem aan het einde alle bladen met deze namen.
Het controleert twee voorwaarden met IF THEN ELSE en hernoemt vervolgens alle bladen.