如何将多份单工作表CSV文件合并至RDI raw data.xlsm的多工作表中
批量导入CSV文件到指定Excel工作簿
以下是针对需求的VBA解决方案,可直接在RDI raw data.xlsm中运行:
VBA代码实现
打开RDI raw data.xlsm,按Alt+F11打开VBA编辑器,插入新模块后粘贴以下代码:
Sub ImportAllCSVs() Dim csvPath As String Dim csvFile As String Dim ws As Worksheet ' 修改为你的CSV文件实际存放路径,注意末尾加反斜杠 csvPath = "C:\YourCSVFilesFolder\" ' 校验路径有效性 If Dir(csvPath, vbDirectory) = "" Then MsgBox "指定的CSV文件夹不存在,请检查路径!", vbExclamation Exit Sub End If ' 遍历文件夹下所有CSV文件 csvFile = Dir(csvPath & "*.csv") Do While csvFile <> "" ' 处理工作表命名:去掉CSV后缀 Dim sheetName As String sheetName = Left(csvFile, Len(csvFile) - 4) ' 检查是否已有同名工作表,有则清空,无则新建 On Error Resume Next Set ws = ThisWorkbook.Worksheets(sheetName) If Err.Number <> 0 Then Set ws = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)) ws.Name = sheetName Else ws.Cells.Clear End If On Error GoTo 0 ' 导入CSV数据(默认逗号分隔,可按需调整) With ws.QueryTables.Add(Connection:="TEXT;" & csvPath & csvFile, Destination:=ws.Range("A1")) .TextFileParseType = xlDelimited .TextFileCommaDelimiter = True .Refresh BackgroundQuery:=False .Delete ' 移除查询链接,仅保留静态数据 End With csvFile = Dir Loop MsgBox "所有CSV文件导入完成!", vbInformation End Sub
关键细节调整
- 路径修改:务必将
csvPath的值替换为你的CSV文件实际存储路径 - 分隔符适配:若CSV使用制表符或其他分隔符,将
.TextFileCommaDelimiter = True改为对应设置(如制表符用.TextFileTabDelimiter = True) - 重复文件处理:代码默认覆盖同名工作表数据,若需跳过重复文件,可在工作表判断逻辑中添加
Exit Do或Continue Do分支 - 宏权限:保存文件后需启用宏才能运行,确保Excel宏安全设置允许执行此工作簿的宏
内容的提问来源于stack exchange,提问作者Waptrick
相关产品推荐
相关产品推荐

