VBA拆分超大CSV文件到多个excel表的代码
时间: 2025-01-19 15:07:59 浏览: 40
VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序的宏语言,可以用来自动化任务,包括处理大型CSV文件。以下是使用VBA将大CSV文件拆分成多个Excel工作簿的基本步骤,假设我们已经读取了整个CSV内容:
```vba
Sub SplitCSVToExcel()
'设置初始变量
Dim ws As Worksheet
Dim rng As Range
Dim csvFile As String, line As Long, i As Integer
Dim path As String, filename As String, extn As String
'指定csv文件路径、名称和扩展名
csvFile = "C:\path\to\your\largefile.csv"
path = "C:\path\to\output\" '<-- 输出文件夹路径
extn = ".xlsx" '<-- 文件扩展名
'打开CSV文件并读取每一行
Open csvFile For Input As #1
Do Until EOF(1)
Line Input #1, line
'如果超过特定行数创建新的Excel文件
If line <> "" And (i Mod 5000) = 0 Then '5000行是一个例子,可以根据需要调整
Close #1
CreateObject("Excel.Application").Workbooks.Add SaveAs Filename:=path & "Split_" & Format(i, "000") & extn
Set ws = ActiveWorkbook.Worksheets(1)
'将CSV数据复制到新工作簿的第一个单元格,并清除原有数据
Open csvFile For Input As #1
Set rng = ws.Range("A1")
Do While Not EOF(1)
Line Input #1, line
rng.Value = line
rng.Offset(1, 0).Select
Loop
Close #1
'重置范围和计数器
Set rng = Nothing
ws.Cells.ClearContents
i = 0
End If
i = i + 1
Loop
Close #1
End Sub
```
这个脚本每读取到5000行数据(这里是一个示例,你可以根据需要调整),就新建一个Excel文件并将这部分数据保存进去。
阅读全文
相关推荐


















