2017-10-11 55 views
0

这里是我当前的代码:VBA保存当前日期的文件,但删除具有相同名称但较旧日期的较旧文件?

Dim strDestinationFile As String 
Dim The_file As String 
MyOldName = WHAT CAN I PUT HERE <-- 
MyNewName = strDestinationFile 

Sheets("NAME OF SHEET").Select 
Range("I2").Select 

The_file = ActiveCell.Value 

strDestinationFile = "FILE PATH NAME" 
Sheets("NAME OF SHEET").Select 
ActiveWorkbook.SaveAs Filename:=strDestinationFile 
Kill MyOldName 

将这项工作,如果我进入或指定正确的路径和我想要的东西,在“MyOldName =”节删除?基本上我有一个与最新日期(即文件名:XXXX-10-11-17.xlsm)相同的VBA,但我可能有以前的文件具有相同的开始名称但日期不同(即:XXXX-10- 10-17),我希望一旦保存这个文件就会被删除。

这可能吗?

谢谢大家帮忙

+0

是的,这是可能的。您可以使用DIR()使用文件名(sans date)的过滤器来查找文件名。然后,您可以使用FileSystemObject库中的DeleteFile方法删除该文件。 – nbayly

+0

对不起,我不熟悉VBA,但是如果可能的话,你能在上面的代码中显示我吗? – TheDude

+0

如果你每周花几个小时在Youtube上观看这个系列[Excel VBA简介](https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5),你很快就能做出一些惊人的事情。 – 2017-10-11 18:59:41

回答

0

参考:MSDN Dir() Function

这是一个基本的迪尔()与模式匹配搜索。

Const RootDir As String = "C:\Reports\" 
Dim MyFile, MyPath, MyName As String 

MyFile = Dir(RootDir & "*??-??-??.xlsx") 

Do While MyFile <> "" 
    ' Insert Code 
    MyFile = Dir() 
Loop 

虽然不是一个完整的答案,它应该足以让你开始。

相关问题