其他人问过类似但不同的question. 但他们的方法对我不起作用。
我正在编写一个Sub来遍历列表,将明文转换为基于单元格内容的超链接。它只是追加String" CellContents"到一个常数" MyPath"。
的末尾如果链接目录不存在,我写了一个If语句来制作链接目录,但是当我介绍它时,我遇到了无数错误。目前通常的是#34;错误76:未找到路径"。
Path = Trim(MyPath & CellContents & "\")
If Dir(Path, vbDirectory) = "" Then
Call MkDir(Path)
End If
我也试过
If Dir(Path, vbDirectory) = "" Then
MkDir Path
End If
我确定知道包含文件夹存在,并且我已尝试单独使用Call MkDir和MkDir。我也尝试过Path上的Trim()/ no Trim(),它没有解决它(输入是字符串,所以Str()导致它自己的错误)。我也尝试过Len(Dir(Path)= 0条件,没有一个帮助MkDir识别Path是一个有效的路径!为什么它没有被正确识别?
答案 0 :(得分:0)
这对我有用:
Sub ytrewq()
Dim s As String, s2 As String
s = "C:\TestFolder\zzzz\"
On Error Resume Next
MkDir s
On Error GoTo 0
End Sub
在使用之前检查 Dir()的参数。
答案 1 :(得分:0)
我的问题是我的一些输入字符串在Windows文件系统规则下包含非法字符,我只是将它们转换为带有Replace()的空格并解决了问题(这可以作为函数或子函数)
Function Replacement(Clean As String)
Clean = Replace(Clean, Chr(10), " ")
Clean = Replace(Clean, Chr(13), " ")
Clean = Replace(Clean, Chr(13) & Chr(10), " ")
Clean = Replace(Clean, "?", " ")
Clean = Replace(Clean, "/", " ")
Clean = Replace(Clean, """", " ")
Clean = Replace(Clean, ":", " ")
Clean = Replace(Clean, "<", " ")
Clean = Replace(Clean, ">", " ")
Clean = Replace(Clean, "|", " ")
Clean = Replace(Clean, "*", " ")
Replacement = Clean
End Function
感谢您的帮助(对于所有使用某些正则表达式的人来说,替换()可能是更好的方法,但是[]在我的Replace()语句中没有工作)
编辑注意:为了获得最佳效果,我添加了Chr10 / 13/10和13行以删除各种行返回元标记,它们在Windows目录名称中也是不允许的。