Может ли кто-нибудь помочь мне разобраться, как копировать и переименовывать листы на основе значений на другом листе, В настоящее время лист называется «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
Так что происходит не так? Вы получаете сообщение об ошибке? Неверные результаты? Здесь много кода, чтобы переименовать некоторые листы ... – RubberDuck
Пользователь помещает некоторые цифры в лист данных TMP, тогда предполагается, что он должен скопировать лист с именем CLO x раз и дать каждому листу уникальный номер из информацию о листе данных TMP. –
Хорошо. * и что на самом деле происходит? * – RubberDuck