Я получаю ошибку времени выполнения недействительной процедуры (ошибка № 5) в этой строке:
afiles(countoflines).Delete True
Я не могу понять, почему. Сохранение копии по пути работает нормально, и назначение ФСО файлам папки работает, но я не могу удалить 'х'й проиндексированный элемент в папке. Может ли кто-нибудь помочь с этим? Спасибо
Option Explicit
Private Sub Workbook_Open()
Dim aFSO As New Scripting.FileSystemObject
Dim aFolder As Object
Dim aFiles As Object
Set aFolder = aFSO.GetFolder("R:\Groups\Finance\Ops Finance\Reporting\F18 Cost Analysis\Standard Costing\Std Cost Variances\Variance Master Back-Ups\")
If aFolder Is Nothing Then MsgBox "Directory not found!", vbExclamation: Exit Sub
Set aFiles = aFolder.Files
Application.StatusBar = "Saving back up copy"
ThisWorkbook.SaveCopyAs aFolder.Path & "\" & _
VBA.Replace(ThisWorkbook.Name, ".xlsm", "") & "_copy_" & _
VBA.Format$(Now, "m-d-yyyy hhmmss AM/PM") & ".xlsm"
Call CleanUpArchive(aFolder, aFolder.Path & Chr(92), aFiles.Count)
Set aFolder = Nothing
Set aFSO = Nothing
End Sub
'Cleans up archive file by deleting the 11th file (oldest copy)
Private Function CleanUpArchive(Folder As Object, Path As String, _
CountofFiles As Integer)
Dim aFiles As Scripting.Files
Set aFiles = Folder.Files
If CountofFiles > 10 Then
aFiles(CountofFiles).Delete True
End If
Set aFiles = Nothing
End Function
Kill
для полного пути, например:Kill "c:\path\to\file.txt"
? - person David Zemens   schedule 31.07.2018Kill
, а также показать, каково значение пути, который вы передаете этому оператору? Это не удастся, если файл заблокирован/используется. - person David Zemens   schedule 31.07.2018Kill
. - person David Zemens   schedule 31.07.2018Dir
для обхода файлов, а затем использует некоторые вызовы WinAPI для определения DateLastModified (я думаю, вы также можете изменить это на DateCreated). - person David Zemens   schedule 31.07.2018