我有一个Excel VBA宏,可以根据excel文件创建一个文件夹树。
我目前的问题是,每次绝对目录变得非常长时,我似乎都会收到错误。
程序将抛出运行时错误76(找不到路径)。我觉得这是因为脚本引用了超过256个字符的绝对路径。
这有什么解决方法吗?或者我唯一的选择是缩短文件夹名称,从而缩短绝对路径字符串?
修改 的
我正在使用的代码如下:
Dim asheet As Range, r As Range, c As Range
Dim fPath As String, tmp As String
Set asheet = ActiveSheet.UsedRange
For Each r In asheet.Rows
fPath = DEST_FOLDER
For Each c In r.Cells
tmp = Trim(c.Value)
If Len(tmp) = 0 Then
Exit For
Else
tmp = Clean(tmp)
fPath = fPath & tmp & "\"
If Len(Dir(fPath, vbDirectory)) = 0 Then MkDir fPath
End If
Next c
Next r
Clean()是一个自定义函数,它只是从字符串中删除特殊字符,即!,#,_,@,$,&,*,^和%。
我是否可以使用另一种方法来创建这些文件夹,这些文件可能会使用相对路径而不是绝对路径?
答案 0 :(得分:0)
在某些情况下,Windows API有limit of 260 characters(C:\ + 256个字符+)。如果您参考上一个问题,是否尝试使用SHFileOperationW
代替SHFileOperationA
?