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

请求修改VBA导出CSV函数:新增文件夹检测与创建功能

修改后的ExportAsCSV VBA函数

以下是调整后的代码,实现检测G3指定名称的文件夹并自动创建(若不存在),再将CSV文件保存至该文件夹:

Sub ExportAsCSV()
 
    Dim MyFileName As String
    Dim CurrentWB As Workbook, TempWB As Workbook
    Dim sFilename As String
    Dim targetFolder As String
    Const csPath As String = "C:\Users\gald\Desktop\Vintage - Gal\Hourly"
    
    ' 获取文件名和目标文件夹名称(来自当前工作表的G2和G3)
    Set CurrentWB = ActiveWorkbook
    sFilename = CurrentWB.ActiveSheet.Range("G2").Value
    targetFolder = csPath & "\" & CurrentWB.ActiveSheet.Range("G3").Value
    
    CurrentWB.ActiveSheet.UsedRange.Copy
 
    Set TempWB = Application.Workbooks.Add(1)
    With TempWB.Sheets(1).Range("A1")
      .PasteSpecial xlPasteValues
      .PasteSpecial xlPasteFormats
    End With
    
    TempWB.Sheets(1).Rows("1:6").Delete Shift:=xlUp
    
    With TempWB.Sheets(1).Range("J2:W200")
        .NumberFormat = "General"
        .Value = .Value
    End With

    ' 检测目标文件夹是否存在,不存在则创建
    If Dir(targetFolder, vbDirectory) = "" Then
        MkDir targetFolder
    End If
    
    ' 拼接最终保存路径
    MyFileName = targetFolder & "\" & sFilename & ".csv"
     
    Application.DisplayAlerts = False
    TempWB.SaveAs Filename:=MyFileName, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    TempWB.Close SaveChanges:=False
    Application.DisplayAlerts = True
    
End Sub

关键修改说明

  • 新增targetFolder变量,存储G3指定名称的文件夹完整路径
  • 使用Dir(targetFolder, vbDirectory)检测文件夹状态,为空时调用MkDir创建文件夹
  • 所有单元格、行操作均明确指向对应工作表,避免跨工作簿引用错误
  • 简化文件名拼接逻辑,移除冗余的Left(sFilename, Len(sFilename))写法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:36:17