Вот простой цикл для выполнения вашего запроса.Первый Case
- это список листов, для которых вы хотите, чтобы код не работал.Для всех остальных листов макрос добавит 1 к последним двум символам.Таким образом, это решение будет нарушено, если следующий формат не верен для всех имен целевых листов: MMM YY
Если у вас есть Userform
для запуска процедуры, вы можете просто вызвать этот макрос из Userform
.
Если есть листы, которые вы хотите игнорировать макросом, попробуйте что-то вроде этого
Option Explicit
Sub NewYear()
Dim ws As Worksheet
For Each ws In Worksheets
Select Case ws.Name
Case "Sheet1", "Sheet1", "Sheet3"
'List any sheets that you want the macro to ignore here ^
Case Else
ws.Name = Left(ws.Name, 3) & Chr(32) & Right(ws.Name, 2) + 1
Next ws
End Sub
Если макрос должен работать на ВСЕХ листах, вы можетеуменьшить до
Sub NewYear()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Name = Left(ws.Name, 3) & Chr(32) & Right(ws.Name, 2) + 1
Next ws
End Sub