Переименовать конкретные вкладки листа - PullRequest
0 голосов
/ 29 декабря 2018

Моя цель - контролировать, какие вкладки листа переименовываются.

Sub RenameSheets()
    Dim I As Long
    On Error Resume Next
    xTitleld = "Rename Worksheets"
    newName = Application.InputBox("Name",xTitleld,"",Type:=2)
    For i = 1 To Application.Sheets.Count
        If Sheets(i).Name <>"Signature" AND WS.Name <> "Invoice" AND WS.Name `<> "Cover" _ 
           Then Sheeets (i).Name = newName & i
    Next
End Sub

Я хочу изменить вкладки листа с именами AR1, AR2 и т. Д.

У меня есть много других листов вРабочая тетрадь.Код изменяет все вкладки листа.

Ответы [ 3 ]

0 голосов
/ 30 декабря 2018

Вы можете попробовать использовать Select Case ThisWorkbook.Sheets(i).Name, это значительно упростит и сократит ваш код.Вы также можете добавить больше имен в будущем.

Модифицированный код

Option Explicit

Sub RenameSheets()

Dim i As Long
Dim newName As String, xTitleld As String

xTitleld = "Rename Worksheets"
newName = Application.InputBox("Name", xTitleld, "", Type:=2)

For i = 1 To ThisWorkbook.Sheets.Count
    Select Case ThisWorkbook.Sheets(i).Name
        Case "Signature", "Invoice", "Cover"
            ' Do Nothing                
        Case Else
            ThisWorkbook.Sheets(i).Name = newName & i        
    End Select
Next i

End Sub
0 голосов
/ 18 января 2019

Вы можете проверить, появляются ли символы «AR» в начале имени.

Option Explicit

Sub RenameSheets_AR()

    Dim I As Long
    Dim xTitleld As String
    Dim newName  As String

    ' Use only in specific circumstances
    'On Error Resume Next
    ' To increase debugging success see http://www.cpearson.com/excel/errorhandling.htm

    xTitleld = "Rename Worksheets"

keyName:
    newName = Application.InputBox("Name", xTitleld, "", Type:=2)

    If newName = "" Then Exit Sub

    For I = 1 To Application.Sheets.Count
        If Left(Sheets(I).Name, 2) = "AR" Then
            Sheets(I).Name = newName & I
        End If
    Next

End Sub
0 голосов
/ 29 декабря 2018

Попробуйте этот код

Sub RenameSheets()
Dim i As Long
Dim xTitleld As String
Dim newName As String
Dim ws As Worksheet
    'On Error Resume Next
    xTitleld = "Rename Worksheets"
    newName = Application.InputBox("Name", xTitleld, "", Type:=2)
    For i = 1 To Application.Sheets.Count
        Set ws = Sheets(i)
        If ws.Name <> "Signature" And ws.Name <> "Invoice" And ws.Name <> "Cover" Then
            Sheets(i).Name = newName & i
        End If
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...