2016-04-01 28 views
7

Desidero chiedere di rinominare il foglio excel, voglio rinominare il foglio con un nuovo nome: nome precedente + _v1.Rinomina foglio Excel con macro VBA

Quindi, se il mio nome foglio corrente è prova, allora voglio il nuovo nome test_v1.

Conosco solo lo standard vba per la ridenominazione del foglio excel che sta rinominando il foglio excel dal contenuto del foglio.

Sub Test() 

Dim WS As Worksheet 

For Each WS In Sheets 
    WS.Name = WS.Range("A5") 
Next WS 
End Sub 
+2

'WS.Name = WS.Name &" _v1 "' –

+1

@TimWilliams Puoi aggiungere questo come risposta – Pugazh

risposta

6

Questo dovrebbe farlo:

WS.Name = WS.Name & "_v1" 
+0

Grazie Williams –

3

suggerisco di aggiungere la gestione per verificare se uno dei fogli da rinominati già esistono:

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 
+0

Grazie Brettdj, –

9

I "no frills" opzioni sono come segue:

ActiveSheet.Name = "New Name" 

e

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

È anche possibile controllare la registrazione delle macro e vedere quale codice che ti dà, è un ottimo modo per iniziare ad imparare alcune delle più funzioni di vaniglia.