Страницы: 1
RSS
Копирование листов с именами из диапазона ячеек
 
Доброго дня гуру Экселя.... В очередной раз нужна Ваша помощь..
Макрос который копирует листы с именами из диапазона ячеек работает исправно.... С переборкой коллекции (пропуск если имена уже ессть)
За исключением того что если в ячейках в диапазоне с именами есть пустые уходит в ошибку..... Можете ли подредактировать так что бы он просто пропускал ошибку до завершения диапазона.....Не создавая листа...

И в определенную ячейку вставить имя листа

Будет вообще супер если получится лист образец спрятать и делать копии с него.. Если вариант сначала отобразить лист -- сделать копии----спрятать лист является оптимальным тогда так и сделаем....Мнение Гуру)

Все исправлено и работает как часы.....

Выкладываю результат коллективного труда
Код
Sub CopySheetExample()
  Dim diapaz As Range 'диапазон нужных листов
  'Dim i As Long
  Dim list As Worksheet
  Dim rgCell As Range ' переменная для перебора коллекции
  
On Error Resume Next
Set diapaz = ActiveWorkbook.Sheets("Договора").Range("A10:A20") ' Диапазон который для новых листов
'Set diapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = Worksheets("0") 'ActiveSheet  'имя листа образца
'For i = 1 To diapaz.Count
'i = 1
For Each rgCell In diapaz 'диапазон нужных листов
list.Visible = xlSheetVisible   'отображает лист образец
    If rgCell.Value <> "" Then
    
        If ExistList(rgCell.Value) = False Then
        list.Copy after:=Worksheets(Worksheets.Count) 'ActiveSheet
        ActiveSheet.Name = rgCell.Value 'Left(diapaz(i), 31)
        ActiveSheet.Range("A1") = rgCell 'Вставляет имя листа в ячейку А1
        End If

    End If
    
Next rgCell
list.Visible = xlSheetHidden 'Скрывает лист образец
End Sub

Function ExistList(strListName As String) As Boolean
 
    Dim objWsheet As Worksheet
    
    On Error GoTo Metka:
    Set objWsheet = ActiveWorkbook.Sheets(strListName)
    ExistList = True
Exit Function
Metka:
    ExistList = False
      
End Function



Спасибо всем кто откликнется.
Изменено: Артур Завгородний - 09.12.2021 17:40:35
 
Код
For Each rgCell In diapaz 'диапазон нужных листов
    If rgCell.Value <> "" Then
        If ExistList(rgCell.Value) = False Then
            List.Copy after:=Worksheets(Worksheets.Count) 'ActiveSheet
            ActiveSheet.Name = rgCell.Value 'Left(diapaz(i), 31)
             
        End If
 
'ActiveSheet.Range("М4") = rgCell.Value 'Left(diapaz(i), 31) ' не работает вставка имени
    End If
Next rgCell
 
Спасибо Вам Все прекрасно работает...)

 
Страницы: 1
Наверх