Excel 学习记录根据总表的每一行生成新的excel文件,生成个人工资条场景使用

原始数据如下
表格内容

在这里插入图片描述
编辑代码

Public Sub 生成文件()
'
'类似工资条单独生成多了表vba,表名根据文件中数据生成
'
    Application.ScreenUpdating = False
    Dim arr, wb As Workbook, i As Long, mFullpath$, FolderPath$
    arr = Sheet1.UsedRange.Value
    FolderPath = ThisWorkbook.Path & "\"
    For i = 2 To UBound(arr)   ' 数据行,第3行开始,如果不是,这里修改****
        If arr(i, 2) <> "" Then
            Set wb = Application.Workbooks.Add
            With wb
                With .Sheets(1)
                    Application.ActiveWorkbook.Sheets(1).Name = arr(i, 3) '重命名sheet名
                    For j = 1 To UBound(arr, 2)
                        .Cells(1, j) = arr(1, j)         ' 取表头
                        .Cells(2, j).Value = arr(i, j)  ' 取内容
                    Next
                End With    '
                mFullpath = FolderPath & arr(i, 3) & ".xlsx"
                .SaveAs Filename:=mFullpath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
                .Close
            End With
        End If
    Next
    Set wb = Nothing
    Application.ScreenUpdating = True
End Sub

复制代码,根据对应表格的格式修改行列关系后

点击执行即可,建议测试生成效果,调试下 F8 步进测试下
结果展示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章