【问题标题】:code not working: Copy file From one directory to another with vba代码不起作用:使用 vba 将文件从一个目录复制到另一个目录
【发布时间】:2018-08-14 01:12:18
【问题描述】:

我编写了一个 VBA 代码来将文件从一个目录复制到另一个目录;但我不知道为什么它不起作用。有任何想法吗?我知道如何使用 FileSystemObject 来做,但我想学习——用 SHELL 来做。

Sub copy_file()

    Dim dirPath As String, srcFile As String

    dirPath = "E:\Download\"
    srcFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name

    Shell ("cmd /c copy /y """ & srcFile & " " & dirPath & """")

End Sub

【问题讨论】:

  • “不工作” - 这是什么意思?发生了什么事?

标签: vba excel


【解决方案1】:

你太复杂了。

您无需为此使用 Shell 并通过命令行。

有一个内置命令:FileCopy


示例

此示例使用FileCopy 语句将一个文件复制到另一个文件。出于本示例的目的,假设这是一个包含一些数据的文件。

Dim SourceFile, DestinationFile 
SourceFile = "SRCFILE" ' Define source file name. 
DestinationFile = "DESTFILE" ' Define target file name. 
FileCopy SourceFile, DestinationFile ' Copy source to target. 

阅读 FileCopy at the source 的文档。

我还建议花几分钟时间阅读所有标准 VBA 对象及其可用的方法/函数/属性/等,以了解内置的任务类型VBA 和/或 Office 的功能。

Here is the main pageOffice VBA 官方文档。

【讨论】:

  • 谢谢你的回复,但是我想用shell命令来做,我已经知道如何使用FileCopy我想知道一些新的东西,你的代码也会帮助我。
【解决方案2】:

srcFile 与您用来保存 vba 代码的文件相同,因此该文件已打开。在这种情况下,Windows shell 复制命令将无法正常工作。 您可以使用 ActiveWorkbook.SaveAs 方法复制打开的源文件。 延伸阅读:How to do a "Save As" in vba code, saving my current Excel workbook with datestamp? 进一步的问题:您的活动工作簿将立即重命名,因此您必须关闭它。为了避免在退出前保存为对话框,请阅读该教程:https://support.microsoft.com/en-us/help/213428/how-to-suppress-save-changes-prompt-when-you-close-a-workbook-in-excel

【讨论】:

    【解决方案3】:

    Shell("cmd /c copy /y """ & srcFile & " " & dirPath & """")

    报价问题。您应该检查您的路径并尝试以下代码:

    Sub copy_file()
    
    Dim dirPath As String, srcFile As String
    
    dirPath = "E:\Download\"
    srcFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name
    MsgBox "cmd /c copy /y " & srcFile & " " & dirPath
    Shell ("cmd /c copy /y " & srcFile & " " & dirPath)
    

    结束子

    【讨论】:

    • 谢谢,我会尝试并让您知道。
    • 感谢您的帮助,我尝试了您的方法,但没有成功。
    • 能否提供详细的错误信息?
    • 您是否将 Excel 工作表保存到特殊位置?
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2017-11-18
    • 2020-06-22
    相关资源
    最近更新 更多