vba文件名或编号错误

时间:2018-01-05 14:25:40

标签: vba excel-vba excel

我有问题。这是一个代码

Function FolderCreate(ByVal path As String) As Boolean

FolderCreate = True

Dim fso As New FileSystemObject

If FolderExist(path) Then
    Exit Function
Else
    fso.CreateFolder path
    Exit Function
End If

End Function

Function FolderExist(ByVal path As String) As Boolean
    FolderExist = False
    Dim fso As New FileSystemObject
    If fso.FolderExists(path) Then FolderExist = True
End Function

我也尝试创建文件夹U:\Paweł\ Generator \ Akus Marcin 20180108001 我得到一个糟糕的文件名或号码。

当我尝试创建像这样的其他文件夹U:\Paweł\ Generator \ Bedrunka Brunon 20171219001没有问题。文件夹的名称有什么问题? 谢谢你的回答

2 个答案:

答案 0 :(得分:0)

不是问题的答案,但可能是问题的解决方案,使用MkDir的代码已经过其他人的测试和认可。

Function FolderCreate(ByVal path As String) As Boolean
    'Dim strDir As String 
    'strDir = "C:\My Documents\TestDir\" 
    If Dir(path, vbDirectory) = "" Then 
        MkDir path
        FolderCreate = True
    Else 
        MsgBox "Directory exists." 
        FolderCreate = False
    End If 
End Function 

从你的代码中不清楚你是否想要我所使用的返回值的赋值,相反或其他东西。 你可以修改它。

来源:改编自http://www.vbaexpress.com/forum/showthread.php?7866-Check-for-folder-create-if-it-does-not-exist

您也可以尝试其他经过测试的代码,或者从那里获取片段......

https://www.extendoffice.com/documents/excel/4182-excel-check-if-folder-exists.html

答案 1 :(得分:0)

这适用于我创建的文件夹。不需要设置引用,因为它使用Late Binding。

Sub Test()

    CreateFolder "U:\Pawel\Generator\Akus Marcin 20180108001"
    CreateFolder "U:\Pawel\Generator\Bedrunka Brunon 20171219001"

End Sub

Sub CreateFolder(Folder As String)

    Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")

    With oFSO
        If Not .FolderExists(Folder) Then
            .CreateFolder Folder
        End If
    End With

End Sub

编辑:使用您的代码进行测试也没有返回任何错误。如果我的代码返回错误,则可能是系统设置正在停止正在创建的文件夹(但这并不能解释为什么创建一个文件夹而另一个文件夹不在同一个父文件夹中)。