vba - 代码不起作用:使用 vba 将文件从一个目录复制到另一个目录
问题描述
我已经编写了一个 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
解决方案
srcFile与您用来保存 vba 代码的文件相同,因此该文件已打开。在这种情况下,Windows shell 复制命令将无法正常工作。您可以使用 ActiveWorkbook.SaveAs 方法复制打开的源文件。进一步阅读:如何在 vba 代码中“另存为”,用日期戳保存我当前的 Excel 工作簿? 进一步的问题:您的活动工作簿将立即重命名,因此您必须关闭它。为了避免在退出前保存为对话框,请阅读该教程: https: //support.microsoft.com/en-us/help/213428/how-to-suppress-save-changes-prompt-when-you-close -a-workbook-in-excel
推荐阅读
- javascript - 我在函数调用中不断收到未定义的错误
- javascript - 类型“ITravel”上不存在属性“长度”。TS2339
- node.js - create-react-app 命令卡在使用 cra-template 安装 react react-dom react-scripts
- javascript - Javascript window.open 从 iFrame
- css - 调整元素大小时保持渐变大小
- android - 如何在更改 Activity 时保存 Intent 数据
- java - 通过参数将值传递给我的程序是什么意思?
- flutter - Flutter 导航栏不随主题变化
- pyspark - 如何结合条件 PySpark 的 2 个数据帧
- javascript - 使用 react-input-slider 时 React event.target.value 返回 undefined