以下是一个示例代码,可以按照指定的单元格拆分工作表并为其命名:
Sub SplitAndNameWorksheets()
Dim cell As Range
Dim lastRow As Long
Dim i As Long
'设置要拆分的工作表和拆分列
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim splitColumn As String: splitColumn = "A"
'获取拆分列的最后一行
lastRow = ws.Cells(ws.Rows.Count, splitColumn).End(xlUp).Row
'循环拆分并命名工作表
For i = 2 To lastRow '从第二行开始,因为第一行是标题
'获取当前行的拆分值和工作表名称
Set cell = ws.Range(splitColumn & i)
Dim splitValue As String: splitValue = cell.Value
Dim sheetName As String: sheetName = "Sheet_" & splitValue
'创建新工作表并复制数据
Dim newWs As Worksheet: Set newWs = ThisWorkbook.Worksheets.Add(After:=ws)
newWs.Name = sheetName
ws.Range("A1").EntireRow.Copy Destination:=newWs.Range("A1")
ws.Range("A" & i).EntireRow.Copy Destination:=newWs.Range("A2")
'删除原始数据行
ws.Range("A" & i).EntireRow.Delete
Next i
End Sub
在这个示例中,我们将要拆分的工作表命名为“Sheet1”,并将拆分列设置为“A”。您可以根据需要更改这些值。代码将从第二行开始循环,因为第一行是标题行。对于每一行,它将获取拆分列中的值,并使用该值创建一个新的工作表名称。然后,它将创建一个新的工作表,并将原始工作表中的标题行和当前行复制到新工作表中。最后,它将删除原始数据行。