2015-01-07 9 views
0

Может ли кто-нибудь помочь мне разобраться, как копировать и переименовывать листы на основе значений на другом листе, В настоящее время лист называется «CLO (2)», а не «CLO 1.2». Я хочу, чтобы код скопировал лист с именем «CLO» и переименовал его на основе значений, найденных на листе под названием «TMP Data», используя значения ячейки из B7 и C7 и ниже (значения B и C создают имя листа).Копирование и переименование листов

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Count > 1 Then Exit Sub 

    If Target.Address = "$B$6" Then 

     Application.EnableEvents = False 

     With Target.Offset(1, 0) 

      Range(.Cells(1), .Cells(1).End(xlDown)).ClearContents 

      .Value = 1 

      .Resize(Target.Value, 1).DataSeries _ 

       Rowcol:=xlColumns, Type:=xlLinear, Step:=1 

     End With 

     Target.Offset(0, 1).Activate 

    ElseIf Not Intersect(Target, Columns("C")) Is Nothing Then 

     If Target.Row > 6 And Application.Count(Target.Offset(0, -1).Resize(1, 2)) = 2 Then 

      On Error GoTo Fìn 

      Application.EnableEvents = False 

      Dim w As Long 

      For w = 1 To Target.Value 

       Sheets("CLO").Copy(after:=Sheets(Sheets.Count)).Name = _ 

        Target.Offset(0, -1) & Chr(46) & w 

      Next w 

      Me.Activate 

     End If 

    End If 
Fìn: 

    Application.EnableEvents = True 

End Sub 

Here is the Excel file

+0

Так что происходит не так? Вы получаете сообщение об ошибке? Неверные результаты? Здесь много кода, чтобы переименовать некоторые листы ... – RubberDuck

+0

Пользователь помещает некоторые цифры в лист данных TMP, тогда предполагается, что он должен скопировать лист с именем CLO x раз и дать каждому листу уникальный номер из информацию о листе данных TMP. –

+0

Хорошо. * и что на самом деле происходит? * – RubberDuck

ответ

0

По умолчанию лист будет скопирован CLO (2), переименовать его после того, как он был скопирован:

Sheets("CLO").Copy After:=Sheets(Sheets.Count) 
Sheets(Sheets.Count).Name = Target.Offset(0, -1).Value & Chr(46) & w 
Смежные вопросы