You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从指定路径导入CSV至Excel不同工作表(每日覆盖更新)

修改后的VBA代码:指定路径自动导入CSV并覆盖数据

以下代码替换了原手动选择文件的逻辑,改为指定固定文件夹路径,自动遍历CSV文件并覆盖对应工作表的数据(文件名与工作表名保持一致):

Sub AutoImportCsvToSheets()
    Dim csvFolderPath As String
    Dim csvFileName As String
    Dim targetWb As Workbook
    Dim targetWs As Worksheet
    Dim tempWb As Workbook
    Dim screenUpdatingState As Boolean
    
    ' --------------------------
    ' 请修改为你的CSV文件所在文件夹路径
    csvFolderPath = "C:\YourCSVFiles\"
    ' --------------------------
    
    On Error GoTo ErrHandler
    screenUpdatingState = Application.ScreenUpdating
    Application.ScreenUpdating = False
    
    Set targetWb = ThisWorkbook ' 当前运行代码的工作簿作为目标工作簿
    
    ' 遍历文件夹下所有CSV文件
    csvFileName = Dir(csvFolderPath & "*.csv")
    Do While csvFileName <> ""
        ' 打开CSV文件
        Set tempWb = Workbooks.Open(csvFolderPath & csvFileName, Local:=True)
        
        ' 获取目标工作表名(去掉.csv后缀)
        Dim wsName As String
        wsName = Left(csvFileName, Len(csvFileName) - 4)
        
        ' 检查目标工作表是否存在
        On Error Resume Next
        Set targetWs = targetWb.Worksheets(wsName)
        On Error GoTo ErrHandler
        
        If targetWs Is Nothing Then
            ' 不存在则新建工作表
            Set targetWs = targetWb.Worksheets.Add(After:=targetWb.Worksheets(targetWb.Worksheets.Count))
            targetWs.Name = wsName
        Else
            ' 存在则清空现有数据
            targetWs.Cells.Clear
        End If
        
        ' 将CSV数据复制到目标工作表
        tempWb.Worksheets(1).UsedRange.Copy Destination:=targetWs.Range("A1")
        
        ' 关闭CSV文件,不保存
        tempWb.Close SaveChanges:=False
        Set tempWb = Nothing
        Set targetWs = Nothing
        
        ' 下一个CSV文件
        csvFileName = Dir
    Loop
    
    MsgBox "CSV文件导入完成!", vbInformation, "提示"
    
ExitHandler:
    Application.ScreenUpdating = screenUpdatingState
    Set targetWb = Nothing
    Exit Sub
    
ErrHandler:
    MsgBox "导入出错:" & Err.Description, vbCritical, "错误"
    Resume ExitHandler
End Sub

关键改动说明

  • 指定固定路径:通过csvFolderPath变量设置CSV文件所在文件夹,无需手动选择
  • 自动覆盖数据:检查对应工作表是否存在,存在则清空原有内容后导入新数据;不存在则新建工作表
  • 保持文件名与工作表名一致:自动提取CSV文件名(去掉.csv后缀)作为工作表名称
  • 高效运行:关闭屏幕刷新,避免操作过程中的闪烁,提升运行速度

使用注意事项

  1. 把代码中的csvFolderPath = "C:\YourCSVFiles\"修改为你实际的CSV文件夹路径
  2. 确保CSV文件名不含Excel工作表名的非法字符(如/ \ : * ? " < > |)
  3. 运行代码前,建议先备份目标工作簿,避免意外数据丢失

内容的提问来源于stack exchange,提问作者user21167295

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:30:44