以下是一个示例VBA代码,可以将一个工作表拆分成多个工作表,并按照指定的命名规则进行命名。
```
Sub SplitWorksheet()
Dim ws As Worksheet
Dim newWs As Worksheet
Dim lastRow As Long
Dim i As Long
'获取当前工作表
Set ws = ActiveSheet
'获取当前工作表的最后一行
lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
'定义每个新工作表的行数
Const rowsPerSheet As Long = 100
'计算需要创建的新工作表数量
Dim numSheets As Long
numSheets = Application.WorksheetFunction.Ceiling(lastRow / rowsPerSheet, 1)
'循环创建新工作表并复制数据
For i = 1 To numSheets
'创建新工作表
Set newWs = Worksheets.Add(After:=ws)
'命名新工作表
newWs.Name = "Sheet" & i
'复制数据到新工作表
ws.Range("A" & ((i - 1) * rowsPerSheet) + 1 & ":A" & (i * rowsPerSheet)).EntireRow.Copy Destination:=newWs.Range("A1")
Next i
End Sub
```
在上述代码中,我们首先获取了当前活动的工作表,然后计算出需要创建的新工作表数量。接着,我们使用一个循环来创建新工作表,并将原始工作表中的数据复制到新工作表中。最后,我们没有返回任何工作表,因为这取决于您的具体需求。如果需要返回特定的工作表,请使用`Sheets("Sheet1").Activate`等代码来实现。请注意,此代码仅适用于单列数据的情况。如果您需要拆分多列数据,请相应地修改代码。