我在excell
中有这部分代码 If FSO.fileExists(OldName) Then ' FSO is fileSystemObject
Cells(1, 3).Value = "Passed"
Set source = FSO.getfile(OldName)
source.Move (NewName)
end if
其中OldName
类似于“C:\ doc \ file.txt”
NewName
类似于“C:\ doc \ NewName \ file.txt”
目录C:\ doc \ NewName包含~20 000个txt文件,行source.Move (NewName)
需要大约4分钟才能执行(文件大小为2kB,计算机真的很旧......)
如果我使用空目录,代码会在一秒钟内运行。
我不允许使用其他目录,我也无法从中删除任何文件。
任何人都可以解释为什么需要这么长时间,以及减少时间的选项是什么?
答案 0 :(得分:0)
你可以试试这个
If FSO.fileExists(OldName) Then ' FSO is fileSystemObject
Cells(1, 3).Value = "Passed"
Set source = FSO.getfile(OldName)
Name OldName As NewName
结束如果
<强>更新强>
好的,你可以试试这个:
If Len(Dir(OldName)) = 0 Then
MsgBox "File does not exist"
Else
Name OldName As NewName
End If
答案 1 :(得分:0)
所以我仍然不知道为什么需要这么长时间,但我找到了解决方法。
我使用这种方法来复制文件
* {
margin: 0;
padding: 0;
border: 0;
}
body {
padding: 10px;
}
.row {
position: relative;
}
.row h1 {
font: bold 20px/2 Sans-Serif;
background-color: #222;
color: white;
display: inline-block;
padding: 0 10px;
text-transform: uppercase;
letter-spacing: 1px;
}
.row h1:before {
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background-color: #222;
}
这会运行不可见的命令控制台来移动文件。 VBA不会等待命令行完成并继续执行其他任务。