【问题标题】:CreateFolder Method keeps returning error 76, "Path not found", when attempting to create a new folder尝试创建新文件夹时,CreateFolder 方法不断返回错误 76,“找不到路径”
【发布时间】:2020-05-26 07:26:20
【问题描述】:

我做了一些阅读,并想出了以下代码:

Function ExistingDir(ByVal strPath As String) As Boolean

Dim oFSO As Object
    If Right(strPath, 1) = "\" Then strPath = Left(strPath, Len(strPath) - 1)

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    ExistingDir = oFSO.FolderExists(strPath)

End Function

Sub CreateDir(ByVal NewFolderPath As String)
Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CreateFolder (NewFolderPath) '<<=== Error line
End Sub

并通过以下方式调用它们,因此它们被发送相同的路径字符串:

If Not ExistingDir(ArchivePath) Then
    CreateDir ArchivePath

第一个检查目录是否存在,第二个创建目录。当我单步执行代码时,我不断收到以下错误:

当我查看 Locals 窗口时,我可以看到 NewFolderPath 的值是:

"C:\Users\me\Desktop\LOCAL CPS folder\Vision 2020\191007\MTOD\Archive\20200124"

我阅读了以下问题 Q1 Q2 Q3

我试过了:

oFSO.CreateFolder (TRIM(NewFolderPath))
oFSO.CreateFolder (TRIM(NewFolderPath) & "\")
oFSO.CreateFolder TRIM(NewFolderPath)
oFSO.CreateFolder TRIM(NewFolderPath) & "\"

我还找到了this question,但不确定它是否适用。我怀疑它可能与路径中的空格有关,但将行更改为:

oFSO.CreateFolder """" & NewFolderPath & """"

它产生了一个错误的文件名错误。

据我所知,我对文件夹 C:\Users\me\Desktop\LOCAL CPS folder\Vision 2020\191007\MTOD 拥有完全的读/写权限。我一开始就创建了它。我正在尝试创建子文件夹\Archive\20020124。当查看文件资源管理器时,该文件夹不会显示在目录中,因此它不是已经存在的情况。

我在创建该文件夹时做错了什么?

更新:

我想我可能已经明白了。是否需要先创建文件夹Archive,然后再创建文件夹20020124

【问题讨论】:

  • 您是要创建一个文件夹还是多个文件夹(即调用代码时路径的多个部分不存在)?
  • @TimWilliams 我刚刚对那部分进行了澄清。在阅读您的评论之前,我正在编辑。我正在尝试添加\Archive\20020124
  • 答案是肯定的——你需要依次创建每个部分。
  • @TimWilliams 感谢您的确认。我有那个链接作为第一季度。显然我需要更仔细地阅读!

标签: excel vba


【解决方案1】:

对于那些将来会考虑这个问题的人来说,答案是您需要一次创建一个子目录。问题中的 Q1 有很多答案显示如何做到这一点。另请注意 Tim Williams 确认这是正确的方法,并且尝试一步生成 \Archive\Date 是问题的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2021-08-11
    • 2020-03-13
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多