Excel 中用VBA批量导入 多个.csv格式的数据分别按名称导入Excel 对应工作表
Excel中用VBA批量导入多个.csv格式的数据分别按名称导入Excel对应工作表中。比如:桌面的文件夹F中有10个类似A_Aug1.csv,B_Aug1.csv,C_...
Excel 中用VBA批量导入
多个.csv格式的数据分别按名称导入Excel 对应工作表中。比如:桌面的 文件夹F 中有10个类似A_Aug1.csv,B_Aug1.csv,C_Aug1.csv的测试源文件,要批量导入到Excel文件中(一个源文件分一个工作表),要求按文件名对应导入相应名称的工作表中(10个工作表已经按A_Aug1……命名)。
或者能批量直接在原Excel文件最后一个工作表后按A_Aug1……顺序导入分成生成10个工作表 展开
多个.csv格式的数据分别按名称导入Excel 对应工作表中。比如:桌面的 文件夹F 中有10个类似A_Aug1.csv,B_Aug1.csv,C_Aug1.csv的测试源文件,要批量导入到Excel文件中(一个源文件分一个工作表),要求按文件名对应导入相应名称的工作表中(10个工作表已经按A_Aug1……命名)。
或者能批量直接在原Excel文件最后一个工作表后按A_Aug1……顺序导入分成生成10个工作表 展开
1个回答
展开全部
答:以下代码是在原Excel文件后面新增工作表的方法导入CSV文件,每个工作表名对于CSV文件名。CSV文件与运行宏的这个文件在同一个文件夹里。
Sub Demo()
Dim Filename As String
Dim r As Long, c As Integer
Dim txt As String, Char As String * 1
Dim Data
Dim i As Integer
Dim NewSheet As Worksheet
Dim NewCell As Range
On Error Resume Next
Filename = Dir(ThisWorkbook.Path & "\*.CSV")
Do While Filename <> ""
Set NewSheet = Worksheets.Add(after:=Sheets(Sheets.Count))
NewSheet.Name = Filename
Set NewCell = NewSheet.Range("A1")
Open ThisWorkbook.Path & "\" & Filename For Input As #1
r = 0
c = 0
txt = ""
Application.ScreenUpdating = False
Do Until EOF(1)
Line Input #1, Data
For i = 1 To Len(Data)
Char = Mid(Data, i, 1)
If Char = "," Then
NewCell.Offset(r, c) = txt
c = c + 1
txt = ""
ElseIf i = Len(Data) Then
If Char <> Chr(34) Then txt = txt & Char
NewCell.Offset(r, c) = txt
txt = ""
ElseIf Char <> Chr(34) Then
txt = txt & Char
End If
Next i
c = 0
r = r + 1
Loop
Close #1
Filename = Dir
Loop
Application.ScreenUpdating = True
End Sub
追问
char(34)什么意思,可以大概解释下?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询