删除今天 VBA 中未保存的文件夹中的所有文件
Delete all files in a folder that weren't saved today in VBA
我正在尝试删除文件夹中今天未保存的所有文件。
该文件夹将只有 .csv
和 .txt
文件类型,所以我将代码编写为只删除那些类型。有没有办法删除任何文件类型?
这是我现在拥有的代码:
Sub delete()
Dim MyFolder As String
Dim MyFileTxt As String
Dim MyFileCSV As String
MyFolder = "C:\Users\Desktop\pdf_converter_test"
MyFileTxt = Dir(MyFolder & "\*.txt")
MyFileCSV = Dir(MyFolder & "\*.csv")
Do While FileDateTime(MyFolder & MyFileTxt) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileTxt) <> Date Then
Kill MyFolder & MyFileTxt
MyFileTxt = Dir
End If
Loop
Do While FileDateTime(MyFolder & MyCSV) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileCSV) <> Date Then
Kill MyFolder & MyFileCSV
MyFileCSV = Dir
End If
Loop
End Sub
循环似乎永远持续下去,所以 Do While 条件有问题。但它也不会删除我想要的文件。
如有任何帮助,我们将不胜感激。谢谢。
实现您想要的最简单的方法。这将删除今天未保存的任何文件类型,即它的修改日期与今天不同。
Sub Sample()
Dim sPath As String
Dim objFSO As Object, objFolder As Object
Dim objfile As Object
'~~> Change as needed
sPath = "C:\Users\Siddharth Rout\Desktop\Test\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sPath)
For Each objFile In objFolder.Files
If Format(objFile.DateLastModified, "DD-MM-YYYY") <> Format(Date, "DD-MM-YYYY") Then
Kill objFile
End If
Next objFile
End Sub
我正在尝试删除文件夹中今天未保存的所有文件。
该文件夹将只有 .csv
和 .txt
文件类型,所以我将代码编写为只删除那些类型。有没有办法删除任何文件类型?
这是我现在拥有的代码:
Sub delete()
Dim MyFolder As String
Dim MyFileTxt As String
Dim MyFileCSV As String
MyFolder = "C:\Users\Desktop\pdf_converter_test"
MyFileTxt = Dir(MyFolder & "\*.txt")
MyFileCSV = Dir(MyFolder & "\*.csv")
Do While FileDateTime(MyFolder & MyFileTxt) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileTxt) <> Date Then
Kill MyFolder & MyFileTxt
MyFileTxt = Dir
End If
Loop
Do While FileDateTime(MyFolder & MyCSV) <> Date
On Error Resume Next
If FileDateTime(MyFolder & MyFileCSV) <> Date Then
Kill MyFolder & MyFileCSV
MyFileCSV = Dir
End If
Loop
End Sub
循环似乎永远持续下去,所以 Do While 条件有问题。但它也不会删除我想要的文件。
如有任何帮助,我们将不胜感激。谢谢。
实现您想要的最简单的方法。这将删除今天未保存的任何文件类型,即它的修改日期与今天不同。
Sub Sample()
Dim sPath As String
Dim objFSO As Object, objFolder As Object
Dim objfile As Object
'~~> Change as needed
sPath = "C:\Users\Siddharth Rout\Desktop\Test\"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sPath)
For Each objFile In objFolder.Files
If Format(objFile.DateLastModified, "DD-MM-YYYY") <> Format(Date, "DD-MM-YYYY") Then
Kill objFile
End If
Next objFile
End Sub