【发布时间】:2018-03-28 20:12:37
【问题描述】:
我在工作表中有一个文件名列表。我想读取一个名称,找到实际文件,重命名它并继续使用下一个名称。
第一部分,从工作表中检索名称并将其修改为新名称不是问题。问题是为文件分配新名称。
名称功能不起作用,因为文件位于不同的驱动器上。我还尝试了 Scripting.FileSystemObject。
代码运行但未进行任何更改。 这是我使用的代码...
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set f = fso.GetFile(fOldName)
If Not Err = 53 Then 'File not found
'Rename file
f.Name = fNewName
End If
我是否犯了一个我没有看到的代码错误?我应该使用/做其他事情吗?
如今,找到有关 VBA 和/或 VB6 的信息变得非常罕见。
顺便说一句。这是针对 Excel 2016 的。
Tks
【问题讨论】:
-
"名称可以跨驱动器移动文件,但只有当新路径名和旧路径名都位于同一驱动器上时,它才能重命名现有目录或文件夹"... 那么为什么不先移动文件呢?重命名它?
-
文件在远程驱动器上。我尝试了 Name 函数,它导致编译错误。我使用 FSO,它不会访问远程驱动器。我硬编码了本地驱动器文件的路径,它可以工作。远程驱动器文件的硬编码路径,它给我“找不到文件”错误。
-
它是映射驱动器,UNC 路径吗?提供更多上下文。
-
这些文件位于 USB HD 上。它被识别为我计算机上的本地驱动器,所以我为什么会有任何问题。我确实喜欢这种类型的问题论坛。我突然想到高清可能有问题。我会检查。与此同时,我的代码不应该工作吗?显然你什么都没有跳出来,所以我的语法一定是正确的。
-
@Don6558,我在下面的回答不是作为解决方案发布的,而是作为低级分步工具发布的,它可能不适用于您当前的环境,但它可能有助于解决问题。