Excel 每张表保存为独立的工作簿

7 篇文章 0 订阅
'按班新建表
Function NewTableByColumn()
    On Error Resume Next
    Dim tableName As String, colIndex As String '分类所在列
    Dim startRowNumber  As Integer  '开始行
    startRowNumber = 2: colIndex = "G"
    Dim sh As Worksheet: Set sh = ThisWorkbook.Sheets(1)
    Dim rng As Range, Rang As Range '班级区域
    Set Rang = Null: Set rng = Null
    For r = startRowNumber To sh.UsedRange.Rows.Count
        tableName = sh.Cells(r, colIndex) '
        If sh.Cells(r, colIndex) = sh.Cells(r - 1, colIndex) Then '属于同一个班级
            Set rng = sh.Cells(r, colIndex).EntireRow
            Set Rang = Union(Rang, rng)
        Else '下一个班级  新建班级 新建班级之前将上一个班级全部数据复制到对应的班级表中
            With Rang
                .Copy Destination:=ThisWorkbook.Worksheets(Worksheets.Count).[a2].Resize(.Rows.Count, .Columns.Count)
            End With
            If Not IsTableExist(tableName) Then
                addTable (tableName)
            End If
            Set Rang = Null: Set Rang = sh.Cells(r, colIndex).EntireRow
        End If
    Next r
    With Rang    '最后一个班级复制
        .Copy Destination:=ThisWorkbook.Worksheets(Worksheets.Count).[a2].Resize(.Rows.Count, .Columns.Count)
    End With
End Function
Function addTable(tableName As String)
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets(1)
    Worksheets.Add after:=Worksheets(Worksheets.Count)
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Sheets.Item(Worksheets.Count)
    With sht
        .Name = tableName
        sh.Rows(1).Copy Destination:=.[a1].Resize(1, sh.UsedRange.Columns.Count)
    End With
End Function
Function IsTableExist(tableName As String) As Boolean
    On Error Resume Next
    If Sheets(tableName) Is Nothing Then
        IsTableExist = False
    Else
        IsTableExist = True
    End If
End Function



Sub 另存所有工作表为单独的工作簿()
    Dim sht As Worksheet, myPath
    Application.ScreenUpdating = False
    myPath = ThisWorkbook.Path & "\"
    For Each sht In ThisWorkbook.Sheets
        sht.Copy
'        Kill myPatht & sht.Name & ".xls"
        ActiveWorkbook.SaveAs myPath & sht.Name & "_无合格银行卡号学生名单" & ".xls"
        ActiveWorkbook.Close
    Next
    Application.ScreenUpdating = True
End Sub

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值