在Excel VBA中合并或读取带有换行符/回车符(CR)的CSV文件,可以按照以下步骤进行操作:
Sub MergeCSVFiles()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim targetRow As Long
' 设置文件夹路径
folderPath = "C:\CSVFiles\"
' 创建一个新的工作簿
Set wb = Workbooks.Add
' 循环遍历文件夹中的所有CSV文件
fileName = Dir(folderPath & "*.csv")
Do While fileName <> ""
' 打开CSV文件
Set ws = wb.Sheets.Add
With ws.QueryTables.Add(Connection:="TEXT;" & folderPath & fileName, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True ' 如果CSV文件使用逗号分隔数据,使用此行
.TextFileTabDelimiter = True ' 如果CSV文件使用制表符分隔数据,使用此行
.TextFileOtherDelimiter = ";" ' 如果CSV文件使用其他分隔符,使用此行,并将分隔符放在引号内
.Refresh
End With
' 将数据复制到目标工作表中
targetRow = ThisWorkbook.Sheets("合并数据").Cells(Rows.Count, 1).End(xlUp).Row + 1
ws.UsedRange.Copy ThisWorkbook.Sheets("合并数据").Cells(targetRow, 1)
' 关闭CSV文件
ws.Delete
fileName = Dir
Loop
' 关闭新创建的工作簿
wb.Close SaveChanges:=False
End Sub
folderPath
变量的值为包含CSV文件的文件夹的路径。如果CSV文件使用逗号分隔数据,请取消注释.TextFileCommaDelimiter = True
行;如果CSV文件使用制表符分隔数据,请取消注释.TextFileTabDelimiter = True
行;如果CSV文件使用其他分隔符,请取消注释.TextFileOtherDelimiter = ";"
行,并将分隔符放在引号内。MergeCSVFiles
子过程,它将合并指定文件夹中的所有CSV文件,并将数据复制到目标工作表中。这样,你就可以在Excel VBA中合并带有换行符/回车符(CR)的CSV文件了。
注意:以上代码仅适用于合并CSV文件,如果需要读取带有换行符/回车符(CR)的CSV文件,请根据具体需求进行相应的修改。
领取专属 10元无门槛券
手把手带您无忧上云