我试图将主 .csv 文件拆分为单独的文件,每个新文件都有标题,最多 500 行数据。完成此操作后,我的原始文件是 .csv,但输出文件都是 .xls。
要求:
我通过 excel 中的“开发人员”选项卡运行此代码,因为它是一个 csv 文件,所以我使用的是活动电子表格。
我认为错误与文件格式有关 -4143,但是当我更改它时,代码中断所以我不确定如何继续。
Sub alm()
Dim ACS As Range, Z As Long, New_WB As Workbook, _
Total_Columns As Long, Start_Row As Long, Stop_Row As Long, Copied_Range As Range
Dim Headers() As Variant
Set ACS = ActiveSheet.UsedRange
With ACS
Headers = .Rows(1).Value
Total_Columns = .Columns.Count
End With
Start_Row = 2
Do While Stop_Row <= ACS.Rows.Count
Z = Z + 1
If Z > 1 Then Start_Row = Stop_Row + 1
Stop_Row = Start_Row + 499
With ACS.Rows
If Stop_Row > .Count Then Stop_Row = .Count
End With
With ACS
Set Copied_Range = .Range(.Cells(Start_Row, 1), .Cells(Stop_Row, Total_Columns))
End With
Set New_WB = Workbooks.Add
With New_WB
With .Worksheets(1)
.Cells(1, 1).Resize(1, Total_Columns) = Headers
.Cells(2, 1).Resize(Copied_Range.Rows.Count, Total_Columns) = Copied_Range.Value
End With
.SaveAs ACS.Parent.Parent.Path & Application.PathSeparator & "file-" & Z & ".csv", FileFormat:=-4143
.Close
End With
If Stop_Row = ACS.Rows.Count Then Exit Do
Loop
End Sub
当我运行这段代码并且所有其他要求都有效时,但是分离的文件保存为 .xml,而不是 .csv。
您正在使用
FileFormat:=-4143
,它是 xlWorkbookNormal。所以它以 .csv 扩展名保存为 excel 格式。使用 6 (xlCSV),而不是