emulator vba

emulator - Excel VBA usando FileSystemObject para listar la última fecha modificada



vba excel pdf (1)

esta es la primera vez que hago una pregunta, así que espero seguir el protocolo. Esto es en referencia a "obtener una lista de subdirectores en vba" obtener una lista de subdirectores en vba .

Encontré el ejemplo # 1 de Brett: el uso de FileScriptingObject es más útil. Pero hay un elemento de datos más (DateLastModified) que necesito en los resultados. Traté de modificar el código pero seguí recibiendo un error calificador no válido. Aquí hay modificaciones de código que hice:

  1. Rango ("A1: C1") = Matriz ("Nombre de archivo", "Ruta", "Fecha de última modificación").
  2. Do While loop agregó this => Cells (i, 3) = myFile.DateLastModified.

Agradecerá la ayuda para incluir la "Fecha de la última modificación".

Santosh aquí es un código completo con comentarios que indican modificaciones.

Public Arr() As String Public Counter As Long Sub LoopThroughFilePaths() Dim myArr Dim i As Long Dim j As Long Dim MyFile As String Const strPath As String = "c:/temp/" myArr = GetSubFolders(strPath) Application.ScreenUpdating = False ''Range("A1:B1") = Array("text file", "path")'' <= orig code Range("A1:C1") = Array("text file", "path", "Date Last Modified") '' <= modified code For j = LBound(Arr) To UBound(Arr) MyFile = Dir(myArr(j) & "/*.txt") Do While Len(MyFile) <> 0 i = i + 1 Cells(i, 1) = MyFile Cells(i, 2) = myArr(j) Cells(i, 3) = MyFile.DateLastModified '' <= added to modify code MyFile = Dir Loop Next j Application.ScreenUpdating = True End Sub Function GetSubFolders(RootPath As String) Dim fso As Object Dim fld As Object Dim sf As Object Dim myArr Set fso = CreateObject("Scripting.FileSystemObject") Set fld = fso.GetFolder(RootPath) For Each sf In fld.SubFolders Counter = Counter + 1 ReDim Preserve Arr(Counter) Arr(Counter) = sf.Path myArr = GetSubFolders(sf.Path) Next GetSubFolders = Arr Set sf = Nothing Set fld = Nothing Set fso = Nothing End Function


Prueba este código:

Sub ListFilesinFolder() Dim FSO As Scripting.FileSystemObject Dim SourceFolder As Scripting.Folder Dim FileItem As Scripting.File SourceFolderName = "C:/Users/Santosh" Set FSO = New Scripting.FileSystemObject Set SourceFolder = FSO.GetFolder(SourceFolderName) Range("A1:C1") = Array("text file", "path", "Date Last Modified") i = 2 For Each FileItem In SourceFolder.Files Cells(i, 1) = FileItem.Name Cells(i, 2) = FileItem Cells(i, 3) = FileItem.DateLastModified i = i + 1 Next FileItem Set FSO = Nothing End Sub