创建一个新的 sheet,复制数据并命名 sheet

Creating a new sheet, copying data and naming the sheet

我需要帮助!

我想创建一个按钮来创建新作品sheet,复制已输入的数据并将 sheet 命名为在 F5 中输入的值。

到目前为止我有这个:

Sub CreateNewSheet()
sheet_name_to_create = Sheet1.Range("F5").Value

For rep = 1 To (Worksheets.Count)
If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then
MsgBox "Already Exists!"
Exit Sub
End If
Next
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = sheet_name_to_create

End Sub

这是为我创建新的 sheet,将其命名为 F5 中的值。 但我需要复制范围 C4:G17

有人可以帮我吗?

谢谢

您可以尝试下一个代码:

Sub CreateNewSheet()
sheet_name_to_create = Sheet1.Range("F5").Value
Sheet1.Range("C4:G17").Copy 

For rep = 1 To (Worksheets.Count)
If LCase(Sheets(rep).Name) = LCase(sheet_name_to_create) Then
MsgBox "Already Exists!"
Exit Sub
End If
Next
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = sheet_name_to_create
Sheets(sheet_name_to_create).Range("C4:G17").PasteSpecial xlPasteValues
End Sub

试试这个:

Sub copy_newsheet()

Dim pname
Dim ws As Worksheet

pname = ActiveSheet.Range("F5").Value

For Each ws In ActiveWorkbook.Sheets

If ws.Name = pname Then
MsgBox "Already Exists"
Exit Sub
End If

Next ws

ActiveSheet.Range("C4:G17").Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Range("C4:G17").PasteSpecial Paste:=xlPasteValues
ActiveSheet.Range("C4:G17").PasteSpecial Paste:=xlPasteFormats
ActiveSheet.Name = pname

End Sub