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

如何将Excel文件保存至上一级目录新建的目标文件夹内?

问题解决:将文件保存到新建文件夹内部

原代码的问题在于路径拼接时缺少了路径分隔符(反斜杠\),导致文件名直接拼接在文件夹名称末尾,最终生成的文件与新建文件夹同级,而非存放在文件夹内部。以下是修正后的代码及关键说明:

修正后的代码

Set apfwb = Workbooks.Open(PathName & "\Resources\template V0.2.xlsm")
Dim apffr As Worksheet
Dim myFileName As String
Dim Path As String, FinalPath As String
Dim fso As Object
Dim fldrname As String, fldrpath As String
Dim FinalFile As String ' 补充声明变量

Path = Application.ActiveWorkbook.Path
FinalPath = Left(ActiveWorkbook.Path, InStrRev(ActiveWorkbook.Path, "\"))
myFileName = "Pack v0.2.xlsm"

Set fso = CreateObject("scripting.filesystemobject")
fldrname = "APF-MDU"
fldrpath = FinalPath & fldrname
' 使用FileSystemObject的BuildPath方法安全拼接路径(自动处理反斜杠)
FinalFile = fso.BuildPath(fldrpath, myFileName)

If Not fso.FolderExists(fldrpath) Then
    fso.CreateFolder (fldrpath)
End If

' 改用fso.FileExists检查文件,避免FileLen在文件不存在时触发错误
If fso.FileExists(FinalFile) Then
    MsgBox ("File already exists!")
    Exit Sub
Else
    ' 补上换行下划线,避免编译错误
    Application.ActiveWorkbook.SaveAs fileName:=FinalFile, _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End If

关键修改点

  1. 路径拼接修正:
    原代码fldrpath & myFileName会生成类似C:\test\APF-MDUPack v0.2.xlsm的错误路径,改用fso.BuildPath(fldrpath, myFileName)可自动添加路径分隔符,生成正确的C:\test\APF-MDU\Pack v0.2.xlsm。
  2. 文件存在检查优化:
    原FileLen函数在文件不存在时会触发运行时错误,改用fso.FileExists(FinalFile)更安全可靠。
  3. 语法错误修复:
    SaveAs语句换行时缺少下划线_,补上后避免编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:55:13