Предположим, что есть рабочая книга с семью листами, а названия листов следующие:
"Условия"
"Револьверы"
"15"
"22"
"55"
"59"
"146"
Мне нужен код VBA, который будет определять лист с наибольшим номеромназвание любого листа во всей книге.В этом примере он должен идентифицировать 146 как наибольшее число.Затем код должен создать новый лист с именем листа, которое на целое число выше, чем имя предыдущего листа.В этом примере новый лист будет создан и затем будет назван «147».Ниже приведен мой код, мне просто нужно заменить «имя вкладки + 1» на соответствующую функцию:
Sub AddSheet()
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim strName As String: strName = "tab name + 1"
Dim ws As Worksheet
Set ws = wb.Worksheets.Add(Type:=xlWorksheet)
With ws
.Name = strName
End With
End Sub
Редактировать на основе ответа BigBen ниже
Sub AddSheet()
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim strName As String: strName = CStr(MaxSheetNumber(wb) + 1)
Dim ws As Worksheet
Set ws = wb.Worksheets.Add(Type:=xlWorksheet)
With ws
.Name = strName
End With
End Sub
Function MaxSheetNumber(ByVal wb As Workbook) As Long
Dim ws As Worksheet
For Each ws In wb.Worksheets
Dim i As Long
If IsNumeric(ws.Name) Then
If CLng(ws.Name) > i Then
i = CLng(ws.Name)
End If
End If
Next
MaxSheetNumber = i
End Function