按照行数分割excel

本来是想通过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行(设定的行数)没有单独分出来,需要再手动分割一下。

 

posted @ 2015-11-16 09:15  我欲成仙快乐齐天  阅读(1155)  评论(0编辑  收藏  举报