Я могу создавать листы, включая его имя, на основе выбранного списка «имен» со следующим кодом (ниже), НО когда это ячейки с повторным именем, это создаст лист без имени и общий «лист ##». Я хочу, чтобы, если имя ячейки повторяется или есть лист уже с этим именем (то же самое), НЕ создайте новый лист.Macro excel для создания новых листов с именами на основе списка, но если повторные не создают
Sub AddSheets()
Dim cell As Excel.Range
Dim wbToAddSheetsTo As Excel.Workbook
Set wbToAddSheetsTo = ActiveWorkbook
For Each cell In Selection
With wbToAddSheetsTo
.Sheets.Add after:=.Sheets(.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = cell.Value
If Err.Number = 1004 Then
Debug.Print cell.Value & " already used as a sheet name"
End If
On Error GoTo 0
End With
End Sub
Спасибо! для вашего ответа ... листы раньше не существовали, проблема заключается в том, когда они создают их, потому что в выборе ячеек повторяются «имена», он будет создавать первый тонкий, но следующий (если повторяется) создаст лист "лист ##", который мне не нужен. Принимая во внимание, что я не могу принимать повторяющиеся из выбора, потому что это будет источником для других частей кода, который я создаю ... Должен ли я добавлять рабочие листы в код? – MemeExcelGeeK
Да, добавьте функцию WorkSheetExists либо в отдельный модуль, либо в свой собственный модуль (а не рабочий лист или модуль ThisWorkbook). Затем добавьте две строки (с * на обоих концах) в свой код. Затем он будет работать через ваш список - с первым «именем» он проверяет, существует ли он, что не позволяет ему создать лист. Когда он дойдет до двойного имени, он проверяет, существует ли он снова - на этот раз он не позволит создать лист - ошибка 1004 никогда не произойдет, поскольку она проверяет заранее. –
Отлично! Я работаю над этим. (я новичок в этом) спасибо! – MemeExcelGeeK