Откройте самую последнюю папку в подпапке и откройте книгу на основе имени - PullRequest
0 голосов
/ 28 февраля 2020

Как видно из названия, моя цель - открыть самую последнюю измененную папку. В этой папке я sh открою каждую подпапку и открою каждый файл с «сводкой», затем закрою. Это то, что у меня пока есть:

Option Explicit
Function GetLastFolder(Path As String)
    Dim FSO, FS, F, DtLast As Date, Result As String
    Set FSO = CreateObject("scripting.FileSystemObject")
    Set FS = FSO.GetFolder(Path).SubFolders
    For Each F In FS
        If F.DateLastModified > DtLast Then
             DtLast = F.DateLastModified
             Result = F.Name
        End If
    Next
    GetLastFolder = Result
End Function

Sub OpenFolder()

Dim wb As Workbook
Dim Folder As String

GetLastFolder ("H:\myFile\")

Dim numberOfFolders As Long

numberOfFolders = GetLastFolder.Files.Count

mylist = Array("File1", "File2", "File3")

For i = 0 To numberOfFolders
If Folder.Exists(mylist(i)) Then

End If

Next i

End Sub

Моя функция находит самую последнюю папку, а подпрограмма должна делать все остальное. Я надеюсь, что мой l oop будет входить в каждую подпапку numberOfFolder количество раз, которое называется именем массива перед открытием файла. Моя попытка слабая, особенно когда я прихожу к l oop. Я не уверен, как ссылаться на папки и файлы, которые не определены заранее.

1 Ответ

1 голос
/ 28 февраля 2020

Ваш GetLastFolder выглядит нормально.

Попробуйте этот OpenFolder, чтобы начать:

Sub OpenFolder()

    Dim wb As Workbook
    Dim Folder As String, sPath As String
    Dim numberOfFolders As Long
    Dim oFolder As Object, oSubFolder As Object, oFSO As Object

    sPath = "C:\Program Files\"
    numberOfFolders = 0
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Folder = GetLastFolder("C:\Program Files\")

    Set oFolder = oFSO.getfolder(sPath + Folder)

    For Each oSubFolder In oFolder.subfolders
        numberOfFolders = numberOfFolders + 1
    Next

    MsgBox numberOfFolders

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