Excel VBA - Liste todas as Planilhas na Pasta - List All the Excel Files in a folder







Também podemos recuperar algumas informações destes arquivos se necessário. Este código VBA listará os nomes e data da última atualização.



Como isso funciona?

A caixa de diálogo de seleção de pasta é usada para tornar mais fácil para o usuário selecionar o local desejado, retornando os arquivos.

A função Dir será usada para retornar cada nome de arquivo da pasta ou diretório.

Este código retornará listando todos os arquivos Excel contidos na pasta. Especificamos isso ao usar *. XLS na função Dir. O curinga e a extensão podem ser alterados para listar todos os arquivos que desejarmos, ou omitir inteiramente alguns arquivos desta.

O método FileDateTime foi usado para capturar a data de criação ou modificação.


Sub ImportFileList()
Dim MyFolder As String 'Store the folder selected by the using
Dim FiletoList As String 'store the name of the file ready for listing
Dim NextRow As Long 'Store the row to write the filename to

On Error Resume Next

Let Application.ScreenUpdating = False

'Display the folder picker dialog box for user selection of directory
With Application.FileDialog(msoFileDialogFolderPicker)
    Let .Title = "Please select a folder"
    .Show
    Let .AllowMultiSelect = False
    If .SelectedItems.Count = 0 Then
        MsgBox "You did not select a folder"
        Exit Sub
    End If
    Let MyFolder = .SelectedItems(1) & "\"
End With

'Dir finds the first Excel workbook in the folder
Let FiletoList = Dir(MyFolder & "*.xls")
Let Range("A1").Value = "Filename"
Let Range("B1").Value = "Date Last Modified"
Let Range("A1:B1").Font.Bold = True

'Find the next empty row in the list
Let NextRow = Application.CountA(Range("A:A")) + 1

'Do whilst the dir function returns an Excel workbook
Do While FiletoList <> ""
    Let Cells(NextRow, 1).Value = FiletoList 'Write the filename into the next available cell
    Let Cells(NextRow, 2).Value = FileDateTime(MyFolder & FiletoList) 'Write the date the cell was last modified
    Let NextRow = NextRow + 1 'Move to next row
    Let FiletoList = Dir 'Dir returns the next Excel workbook in the folder
Loop

Let Application.ScreenUpdating = True

End Sub
















Tags: Excel, VBA, Files, Folder, list, Dir, filedatetime, xls, xlsm, xlsb, 







Inline image 1


Nenhum comentário:

Postar um comentário

diHITT - Notícias