可以使用VBA(Visual Basic for Applications)宏来实现这个功能。以下是实现该功能的VBA代码,可以将每个工作簿按照每100行拆分成多个新工作簿,并保留标题行:Sub SplitWorkbooks()Dim FolderPath As StringDim FileName As StringDim WorkBk As WorkbookDim SourceRange As RangeDim DestRange As RangeDim SplitRow As IntegerDim NewWorkbookName As String '设置文件夹路径FolderPath = "C:\Users\用户名\Desktop\文件夹名称" '将此处的路径更改为包含要拆分的工作簿的文件夹的路径和名称FileName = Dir(FolderPath & "*.xlsx") '获取文件夹中所有扩展名为.xlsx的工作簿文件名Application.ScreenUpdating = False '关闭屏幕更新以提高性能Do While FileName <> "" '循环处理文件夹中的每个工作簿Set WorkBk = Workbooks.Open(FileName) '打开当前工作簿进行处理SplitRow = 100 '设置每个新工作簿的行数Set SourceRange = WorkBk.ActiveSheet.Range("A1").CurrentRegion '获取当前工作表的数据范围,包括标题行和数据区域 Set DestRange = WorkBk.Sheets.Add.Range("A1") '创建一个新的工作表并将光标移动到第一个单元格DestRange.Resize(1, SourceRange.Columns.Count).Value = SourceRange.Rows(1).Value '将标题行复制到新的工作表中 Do Until SourceRange.Rows.Count <= SplitRow '按照设置的行数将数据区域拆分成多个新工作簿 NewWorkbookName = "Split_" & Format(Now(), "yyyymmdd\_hhmmss") & ".xlsx" '生成新的工作簿的名称,可以按照需要进行修改 WorkBk.Activate ActiveSheet.Copy After:=Workbooks(NewWorkbookName).Sheets(Workbooks(NewWorkbookName).Sheets.Count) '复制当前的工作表到新的工作簿中 Windows(NewWorkbookName).Activate ActiveSheet.Name = "Sheet1" '重命名新的工作表的名称为“Sheet1” 注意:以上代码需要您自行更改的部分是文件夹路径以及设定每个新产生的工作簿的行数(这里是默认设定为100行)。同时请注意备份原始数据以防万一。
