2

我有一个 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() 是一个自定义函数,它将简单地从字符串中删除特殊字符,即!、#、_、@、$、&、*、^ 和 %。

是否有另一种方法可以用来创建这些文件夹,这些文件夹可能会使用相对路径而不是绝对路径?

4

1 回答 1

0

Windows API在某些情况下限制为 260 个字符(C:\ + 256 个字符 + )。如果您参考上一个问题,您是否尝试过使用SHFileOperationW而不是SHFileOperationA

于 2012-05-08T16:58:28.530 回答