web-dev-qa-db-fra.com

Renommer une feuille Excel avec une macro VBA

Je veux demander à propos de renommer la feuille Excel, je veux renommer la feuille avec un nouveau nom: ancien nom + _v1.

Donc, si mon nom de feuille actuel est test, alors je veux le nouveau nom test_v1.

Je ne connais que la vba standard pour renommer une feuille Excel qui renomme une feuille Excel en fonction du contenu de la feuille.

Sub Test()

Dim WS As Worksheet

For Each WS In Sheets
   WS.Name = WS.Range("A5")
Next WS
End Sub
13
Ongok Ongoksepen

Cela devrait le faire:

WS.Name = WS.Name & "_v1"
16
Tim Williams

Les options "sans fioritures" sont les suivantes:

ActiveSheet.Name = "New Name"

et

Sheets("Sheet2").Name = "New Name"

Vous pouvez également consulter les macros d'enregistrement et voir le code qu'il vous donne. C'est un excellent moyen de commencer à apprendre certaines des fonctions les plus populaires de Vanilla.

20
Realitybites

Vous suggérons d’ajouter des manipulations pour vérifier si l’une des feuilles à renommer existe déjà:

Sub Test()

Dim ws As Worksheet
Dim ws1 As Worksheet
Dim strErr As String

On Error Resume Next
For Each ws In ActiveWorkbook.Sheets
Set ws1 = Sheets(ws.Name & "_v1")
    If ws1 Is Nothing Then
        ws.Name = ws.Name & "_v1"
    Else
         strErr = strErr & ws.Name & "_v1" & vbNewLine
    End If
Set ws1 = Nothing
Next
On Error GoTo 0

If Len(strErr) > 0 Then MsgBox strErr, vbOKOnly, "these sheets already existed"

End Sub
5
brettdj