VBA将文件从一个目录复制到另一个目录

har*_*ryg 39 vba copy

所以我有一个访问文件,我经常需要将其复制到另一个目录,替换最后一个版本.我想使用Excel宏来实现这一点,并且还希望在此过程中重命名该文件.

例如

   fileName = "X:\Database\oldName.accdb"
   copyDestination = "Y:\dbstore\"
   newName = "newName.accdb"
Run Code Online (Sandbox Code Playgroud)

有这么简单的方法吗?

Jon*_*Jon 70

如果您选择较少的选项,这种方法会更容易:

FileCopy source, destination
Run Code Online (Sandbox Code Playgroud)

  • 很好,很简单,但是当我使用此解决方案并打开要复制的Access数据库时,出现“拒绝访问”错误。使用FileSystemObject时不会发生这种情况。 (3认同)
  • 我测试了,实际上,这种方法会自动覆盖. (2认同)

Bat*_*eba 60

在Scripting.FileSystemObject中使用适当的方法.然后你的代码将更容易移植到VBScript和VB.net.为了帮助您入门,您需要包括:

Dim fso As Object
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Run Code Online (Sandbox Code Playgroud)

然后你可以使用

Call fso.CopyFile(source, destination[, overwrite] )
Run Code Online (Sandbox Code Playgroud)

其中source和destination是文件的全名(包括路径).

请参阅http://msdn.microsoft.com/en-us/library/aa711216(v=vs.71).aspx

  • 与使用FileCopy的其他简单解决方案相比,此解决方案似乎具有以下优点:源文件也可以在打开时复制(例如通过MS Access),即当它是"只读"时. (3认同)