2015-01-07 142 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