原始數據如下
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 步進測試下