|
本帖最后由 cdc811 于 2022-1-21 20:51 编辑
如何将一个工作表的数据拆分成多个工作簿:
1、总共有20000多行数据,如何按1000行数据拆分一个工作簿;
2、A~Z列都有数据;
3、标题行数为3行,即拆分后的工作簿保留三行标题内容;
4、拆分工作簿的文件名为对应A列中的序号,如1.xls、1000.xls、2000.xls、3000.xls
请高手帮忙!!!
---------------------------
下面的代码拆分后只有一个A列数据,如果A~Z列都有数据,如何将下面的代码修改一下呢?
- '如下Excel表,总共有120多行数据,以50行数据为一个工作表进行拆分
- Sub ZheFenSheet()
- Dim r, c, i, WJhangshu, WJshu, bt As Long
- r = Range("A" & Rows.Count).End(xlUp).Row
- b = InputBox("请输入分表行数")
- If IsNumeric(b) Then
- WJhangshu = Int(b)
- Else
- MsgBox "输入错误", vbOKOnly, "错误"
- End
- End If
- c = Cells(1, Columns.Count).End(xlToLeft).Column
- bt = 3 '标题行数
- 'WJhangshu = 50 '每个文件的行数
- WJshu = IIf(r - bt Mod WJhangshu, Int((r - bt) / WJhangshu), Int((r - bt) / WJhangshu) + 1)
-
- '------
- Set fs = CreateObject("Scripting.FileSystemObject") '
-
- For i = 0 To WJshu
- Workbooks.Add
- Application.DisplayAlerts = False
- ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Format(i + 1, String(Len(WJshu), 0)) & "." & fs.GetExtensionname(ThisWorkbook.FullName) '扩展名
- Application.DisplayAlerts = True
- ThisWorkbook.ActiveSheet.Range("A1").Resize(bt, c).Copy ActiveSheet.Range("A1")
- ThisWorkbook.ActiveSheet.Range("A" & bt + i * WJhangshu + 1).Resize(WJhangshu, c).Copy _
- ActiveSheet.Range("A" & bt + 1)
- ActiveWorkbook.Close True
- Next
- End Sub
复制代码
本帖最后由 hhxq001 于 2022-1-23 12:13 编辑
试一试我收藏的这个,能不能满足需要
1个表-拆分成多个独立的文件.zip
(29.09 KB, 下载次数: 22)
|
-
工作表内容
|