如何用VBA按照指定的单元格拆分相应的工作表并为其命名

动态 未结 0 107
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是一个示例代码,可以按照指定的单元格拆分工作表并为其命名: 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”。您可以根据需要更改这些值。代码将从第二行开始循环,因为第一行是标题行。对于每一行,它将获取拆分列中的值,并使用该值创建一个新的工作表名称。然后,它将创建一个新的工作表,并将原始工作表中的标题行和当前行复制到新工作表中。最后,它将删除原始数据行。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复