Excel表格按行数拆分为多个文件

该博客介绍了如何使用VBA宏在Excel中批量拆分表格,代码适用于微软OfficeExcel,不适用于WPS且WPS宏为收费功能。通过输入分表行数,可以将大表格按指定行数自动拆分成多个单独的Excel文件,同时提供了一个自动编号并补0的公式。操作步骤包括进入VBA编辑器,插入模块,粘贴代码,运行宏,最终完成数据拆分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此代码只适用微软的Office Excel软件,WPS软件没有测试,而且WPS宏代码是收费功能。

在Excel菜单点击【开发工具】-【查看代码】进入VBA代码编写界面,然后点击【插入】-【模块】,把下面的代码复制到代码编写区域内,然后保存。在点击代码界面上边的绿色小箭头运行代码就可以进行拆分表格了。

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 = 1 '标题行数
    '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

最终,表格内数据按行数被拆分为多个文件。

Excel自动编号,并进行补0的公式:REPT(0,8-LEN(ROW()-1))&ROW()-1

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值