我有问题。这是一个代码
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没有问题。文件夹的名称有什么问题? 谢谢你的回答
答案 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
编辑:使用您的代码进行测试也没有返回任何错误。如果我的代码返回错误,则可能是系统设置正在停止正在创建的文件夹(但这并不能解释为什么创建一个文件夹而另一个文件夹不在同一个父文件夹中)。