以下是一个示例宏,可将Excel工作簿中的单元格按名称切割成多个CSV文件:
Sub CutReportsByName()
Dim ws As Worksheet
Dim LastCol As Integer
Dim i As Integer
Dim NameRange As Range
Dim CutRange As Range
Dim ReportName As String
'遍历每个工作表
For Each ws In Worksheets
'确定最后一列
LastCol = ws.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'遍历每一列
For i = 1 To LastCol
'如果单元格拥有名称,则使用名称并切割对应的CSV文件
If Not ws.Cells(1, i).Name.Name = "" Then
ReportName = ws.Cells(1, i).Name.Name
Set NameRange = ws.Range(ReportName)
Set CutRange = ws.Range(ws.Cells(1, i), ws.Cells(ws.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row, i))
CutRange.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="C:\" & ReportName & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close
CutRange.ClearContents
End If
Next i
Next ws
End Sub
上一篇:按名称切割报告的宏帮助
下一篇:按名称求取数组的总和