2017-06-22 100 views
0

我试图将使用通配符从\Output文件夹到\Output\Archive文件夹的许多Excel文件。如果档案文件夹中已存在文件,则应覆盖该文件。Excel宏覆盖现有文件

Print screen of my code

这是我的代码(附图片中所示)

Application.DisplayAlerts = False 

Dim FSO As Object 
Set FSO = CreateObject("scripting.filesystemobject") 

FSO.MoveFile Source:=Excel_Path & Excel_Name, Destination:=Excel_Path & "Archive\" & Excel_Name 

Application.DisplayAlerts = True 

它仍然抛出一个错误

文件已经存在

几乎大家建议到禁用显示警报但在我的情况下,它不工作。

我在这里错过了什么吗?有人可以帮忙吗?
TIA, Sanket K.

+0

为什么不在删除现有文件之前删除现有文件(如果它在复制新文件之前存在)(注意,非常小心并仔细检查DIR之前的运行,不要想要杀死你的主文件)。 –

+0

'ThisWorkbook.Saved = True'或WorkBook的名称而不是ThisWorkbook可能对您有所帮助。 ? – Mertinc

回答

0

这是一个duplicate。如果目标文件已存在,则不能使用MoveFile。最好使用CopyFile和DeleteFile

+0

谢谢丹,它工作! – Sanket