Удалить файлы Excel в указанной папке - PullRequest
0 голосов
/ 29 июня 2019

Я новичок в VBA, и я практиковал некоторый код об удалении файлов Excel в указанной папке с условием (если в ячейке A2 нет данных, тогда удалите файл Excel). И мой код выглядит так:

Public Sub Deletefile()
    Dim myfolder As String
    Dim myfile As Variant
    Dim i As Variant

    myfolder = "C:\Users\Downloads\AttachmentFolder"
    myfiles = Dir(myfolder & "*.xlsx")
    For i = 1 To UBound(myfiles)
        With Workbooks(i)
            .Open
        End With
        If Workbooks(i).Range("A2").Count = 0 Then
            Kill myfiles(i)
        End If
    Next
End Sub

Я взял приведенный выше код в Интернете и изменил его, но VBA просто сказал «несоответствие типов». Пожалуйста, исправьте и объясните, где я не прав.

1 Ответ

0 голосов
/ 29 июня 2019

Это будет работать для вас:

Измените Имя листа, если хотите проверить значение A2 на другом листе, чем на первом.

Public Sub Deletefile()

    Dim myfolder As String

    Dim objFSO As Object
    Dim objFolder, sfol As Object
    Dim objFile As Object

    myfolder = "C:\Users\Downloads\AttachmentFolder\"

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.getFolder(myfolder)

    For Each objFile In objFolder.Files
        If Right(objFile.Name, 5) = ".xlsx" Then
            Workbooks.Open (objFile)

            If Len(ActiveWorkbook.Worksheets(1).Range("A2")) < 1 Then
                ActiveWorkbook.Close False
                Kill objFile
            End If

            ActiveWorkbook.Close False

        End If

    Next objFile

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...