Переименовать лист Excel с помощью макроса VBA

Я хочу спросить о переименовании листа excel, я хочу переименовать лист с новым именем: старое имя + _v1.

Итак, если мое текущее имя листа тест, то я хочу новое имя test_v1.

Я знаю только стандартный vba для переименования листа excel, который переименовывает лист excel по содержанию листа.

Sub Test()

Dim WS As Worksheet

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

3 ответов


Это должно сделать это:

WS.Name = WS.Name & "_v1"

параметры" без излишеств " следующие:

ActiveSheet.Name = "New Name"

и

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

вы также можете проверить запись макросов и посмотреть, какой код он дает вам, это отличный способ начать изучать некоторые из более ванильных функций.


предложите добавить обработку для проверки, если какой-либо из переименованных листов уже существует:

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