2016-04-01 17 views
7

Chcę zapytać o zmianę nazwy arkusza programu Excel, chcę zmienić nazwę arkusza z nową nazwą: starsza nazwa + _v1.Zmień nazwę arkusza programu Excel na makro VBA

Więc jeśli moja obecna nazwa arkusza jest Test, potem chcę nową nazwę test_v1.

Wiem tylko standard vba dla arkusza zmiany nazwy, który zmienia nazwę arkusza Excela na zawartość arkusza.

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 Czy możesz dodać to jako odpowiedź – Pugazh

Odpowiedz

6

ten powinien zrobić:

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

Dzięki Williams –

3

Proponuję dodać obsługę aby sprawdzić, czy każdy z arkuszy być już przemianowany istnieje:

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

Dziękuję Brettdj, –

9

„nie fanaberie” opcje są w następujący sposób:

ActiveSheet.Name = "New Name" 

i

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

Możesz również sprawdzić nagrywanie makr i zobaczyć, jaki kod ci daje, to świetny sposób, aby zacząć uczyć się niektórych z bardziej zaawansowanych funkcji wanilii.

Powiązane problemy