Измените макрос для выбранного маршрута, будьте тем, который указывает на ячейку - PullRequest
0 голосов
/ 29 июня 2019

У меня есть макрос, который перечисляет файлы в определенной папке и помещает их в список.Адрес, по которому он берется, находится в статической форме.Я хотел бы, чтобы вы указали мне, что этот адрес зависит от маршрута, который находится в ячейке J1.Макрос выглядит следующим образом

Private Sub Userform_initialize()
    Application.EnableEvents = False
    c00 = "C:\Users\Downloads" 'change path to suit
    c01 = Dir(c00 & "*.pdf")
    With CreateObject("scripting.filesystemobject")
        Do While c01 <> "" c02 = c02 & "|" & .GetBaseName(c00 & c01)
            c01 = Dir
        Loop
    End With
    With ListBox1
        .ListIndex = -1
        .List = Split(Mid(c02, 2), "|")
    End With
    Application.EnableEvents = True
End Sub

Private Sub ListBox1_Click() 'change path to suit 
    Filename = "C:\User\Downloads\" & ListBox1.Value & ".pdf"
    ShellExecute 0, "Open", Filename, "", "", vbMaximizedFocus
    ListBox1.ListIndex = -1 
End Sub

1 Ответ

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

Просто замените статическую строку значением Range ("J1")

Private Sub Userform_initialize()
    Application.EnableEvents = False
    c00 = Range("J1").Value 'change path to suit
    c01 = Dir(c00 & "*.pdf")
    With CreateObject("scripting.filesystemobject")
        Do While c01 <> "" c02 = c02 & "|" & .GetBaseName(c00 & c01)
            c01 = Dir
        Loop
    End With
    With ListBox1
        .ListIndex = -1
        .List = Split(Mid(c02, 2), "|")
    End With
    Application.EnableEvents = True
End Sub

Private Sub ListBox1_Click() 'change path to suit 
    Filename = Range("J1").Value & ListBox1.Value & ".pdf"
    ShellExecute 0, "Open", Filename, "", "", vbMaximizedFocus
    ListBox1.ListIndex = -1 
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...