本来是想通过NOPI自己编写个小工具分割excel的,但是不想去研究API,就百度了一下,找了很久,有几个软件说是为了这个功能而生,实际上要么不能使用,要么出错,所以暂时没有公开可用的软件。
然后我就继续搜索,在百度上,有位高人使用VBA提供了此解决方案。
Sub cfb() Dim r, c, i, WJhangshu, WJshu, bt As Long r = Range("A" & Rows.Count).End(xlUp).Row c = Cells(1, Columns.Count).End(xlToLeft).Column bt = 1 '标题行数 WJhangshu = 190 '每个文件的行数 WJshu = IIf(r - bt Mod 190, Int((r - bt) / WJhangshu), Int((r - bt) / WJhangshu) + 1) For i = 1 To WJshu Workbooks.Add Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(i, String(Len(WJshu), 0)) & ".xls" 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
但是这个方法也有弊端:分割的文档数量少第一个,前190行(设定的行数)没有单独分出来,需要再手动分割一下。