将一个工作簿中的表格拆成多个文件

一个工作簿中包含很多表格,改怎样将这些表格拆分成多个文件呢?

Sub chaifenwenjian()

Dim sht As Worksheet
Dim shp As Object
Dim i, j As Integer

For Each sht In Sheets

    '复制数据到新的工作簿
    sht.Copy
    ActiveWorkbook.SaveAs Filename:="C:\Users\lenovo\Desktop\拆分表格数据\" & sht.Name & ".xlsx"
    ActiveWorkbook.Sheets(1).Columns("M:P").ClearContents
    
    '添加合计
    j = ActiveWorkbook.Sheets(1).Range("a65536").End(xlUp).Row
    ActiveWorkbook.Sheets(1).Range("I" & j + 1) = "合计"
    ActiveWorkbook.Sheets(1).Range("J" & j + 1) = WorksheetFunction.Sum(Sheets(1).Range("j3:j" & j))
    
    '添加列
    ActiveWorkbook.Sheets(1).Range("M2") = "点单跟踪"
    ActiveWorkbook.Sheets(1).Range("N2") = "未补单原因"
    ActiveWorkbook.Sheets(1).Range("O2") = "预计补单时间"

    '格式
    ActiveWorkbook.Sheets(1).Range("L2:L" & j).Copy
    ActiveWorkbook.Sheets(1).Range("M2:O" & j).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Sheets(1).Range("M2:O2").Interior.Color = 65535
    ActiveWorkbook.Sheets(1).Range("M2:O2").Font.Color = -16776961
    
    '删除图形
    For Each shp In ActiveSheet.Shapes
        shp.Delete
    Next shp
    ActiveWorkbook.Save
    ActiveWorkbook.Close

Next

End Sub


改写法的代码是,最好只打开要拆分的表格,此处采用的是ActiveWorkbook,即当前活动工作簿。如果同时打开其它表格并且忘记切换到要拆分的表格,会出问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容