Come rinominare un foglio utilizzando vba in excel?

Quando aggiungi un nuovo foglio a una cartella di lavoro, hai la possibilità di assegnargli un nome. Ma puoi anche rinominarlo in qualsiasi momento utilizzando la proprietà name del foglio di lavoro. In questo tutorial esamineremo diversi modi per rinominare uno o più fogli utilizzando il codice VBA.

Passaggi per rinominare un foglio utilizzando il codice VBA

  1. Innanzitutto, definisci il foglio che desideri rinominare utilizzando l’oggetto foglio di lavoro.
  2. Successivamente, devi utilizzare (.Name) per accedere alla proprietà del nome che desideri modificare.
  3. Successivamente, digita un segno uguale per indicare a VBA il valore che desideri utilizzare per rinominare il foglio.
  4. Alla fine, digita il nome del foglio che desideri utilizzare.
definisci-il-foglio-che-vuoi-rinominare

Link utili: Esegui una macroRegistratore di macroVisual Basic EditorManuale delle macro personali

Rinomina il foglio attivo

Se vuoi rinominare il foglio attivo, in questo caso non è necessario impostare il nome del foglio, devi invece utilizzare l’oggetto ActiveSheet che dice a VBA di fare riferimento al foglio attivo in questo momento. Ecco il codice.

 Activesheet.Name = "mySheet"
rinomina-foglio-attivo

Nota: per rinominare un foglio, non è necessario attivarlo.

Rinominare un foglio utilizzando il numero del foglio

Come sai, ogni foglio ha un numero a seconda della sua posizione nella cartella di lavoro. Diciamo che vuoi rinominare il foglio che hai sul quinto numero, il codice sarebbe.

 Sheets(5).Name = "mySheet5"
rinominare-un-foglio-utilizzando-il-numero-del-foglio

Quando esegui la macro sopra , rinomina il foglio che si trova al quinto numero.

rinominare-foglio-come-per-numero

Controlla se il foglio esiste prima di rinominarlo

Se provi a rinominare un foglio di lavoro che non esiste, VBA ti mostrerà un errore, come di seguito.

controlla se il foglio esiste prima di rinominarlo

La soluzione a questo problema è il seguente codice che utilizza FOR EACH , che può scorrere tutti i fogli di lavoro per trovare il foglio definito e quindi rinominarlo.

 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

Rinominare un foglio utilizzando il valore di una cella o di un intervallo

Puoi anche rinominare un foglio prendendo il valore di una cella. Diciamo che il valore è nella cella A1.

 Sheets("Sheet1").name = Range("A1").Value

Ma supponiamo che tu voglia nominare più fogli in base ai valori in un intervallo di celle. In questo caso dovresti avere un codice come questo.

 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

Quando esegui questo codice VBA, controlla innanzitutto se le celle nell’intervallo sono uguali al numero di fogli presenti nella cartella di lavoro. Successivamente, controllerà se tutte le celle nell’intervallo specificato hanno valori o meno. E alla fine rinomina tutti i fogli usando questi nomi.

Verificherà due condizioni utilizzando IF THEN ELSE , quindi rinominerà tutti i fogli.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *