【问题标题】:Wait for Kill before continuing?等Kill再继续?
【发布时间】:2015-12-04 05:45:22
【问题描述】:

如果之前已解决此问题,我深表歉意,但我在网上搜索此答案时没有成功。

我们有一种情况,我们正在将本地文件同步到网络文件,如下面的虚拟化代码所示。例如,如果网络文件存在,则将其复制到本地驱动器。如果网络文件不存在,则将其从本地驱动器中删除。

我的问题是,我是否需要在 Kill 行和 Filecopy 行之间进行一些延迟/测试?到目前为止,测试还没有发现任何问题,但我仍然有点不确定这是否足够。

Sub copyFile()

Const SFile As String = "N:\Test.txt"
Const tFile As String = "C:\Test.txt"

On Error Resume Next

Kill tFile

On Error GoTo errTrap

FileCopy SFile, tFile
errTrap:
End Sub

【问题讨论】:

    标签: vba


    【解决方案1】:

    我觉得你的代码不错,你可以添加错误处理程序,当 FileCopy 出错时。

    Sub copyFile()
    
    Const SFile As String = "N:\Test.txt"
    Const tFile As String = "C:\Test.txt"
    
    On Error Resume Next
    
    Kill tFile
    
    On Error GoTo errTrap
    
    FileCopy SFile, tFile
    exit sub
    
    errTrap:
    'do something when FileCopy Error
    
    End Sub
    

    【讨论】:

    • 感谢您的回复.. 我真正担心的是 VBA 代码可能领先于操作系统,即尝试在原始文件完全删除之前复制文件.. 代码为显示已被简化以说明这一点,因此缺乏错误处理。
    • 应该没问题,或者你可以试试这个link
    • 埃里克,你并没有真正告诉我任何我不知道的事情,我一直在等待一个更“深入”的答案,它会涉及 VBA 和操作系统之间的时间问题。由于似乎没有人会出现,我会检查你的答案。请注意,此评论并非贬低语气,我真的很感谢您的意见。谢谢。
    猜你喜欢
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2019-11-01
    • 2021-05-06
    • 2021-05-21
    相关资源
    最近更新 更多