Выбор папки Excel VBA и вставка Path to Cell - PullRequest
0 голосов
/ 01 ноября 2018

Мне трудно понять, как поместить путь к папке в ячейку C49. Я бы хотел, чтобы у него был Путь, чтобы он мог понять, где он ищет и нужно ли ему менять указанный Путь.

Я получил этот код VBA, http://learnexcelmacro.com/wp/2016/12/how-to-open-file-explorer-in-vba/

Private Sub cmd_button_BROWSEforFolder_Click()

    On Error GoTo err
    Dim fileExplorer As FileDialog
    Set fileExplorer = Application.FileDialog(msoFileDialogFolderPicker)

    'To allow or disable to multi select
    fileExplorer.AllowMultiSelect = False

    With fileExplorer
        If .Show = -1 Then 'Any folder is selected
            [folderPath] = .SelectedItems.Item(1)
            ThisWorkbook.Sheets("Home").Range("C49") = .SelectedItems.Item(1)
        Else ' else dialog is cancelled
            MsgBox "You have cancelled the dialogue"
            [folderPath] = "" ' when cancelled set blank as file path.
        End If
        End With
err:
    Exit Sub

End Sub

Я пытался изменить расположение,

ThisWorkbook.Sheets("Home").Range("C49") = .SelectedItems.Item(1)

и попытался изменить

.SelectedItems.Item(1)

к, [Путь к папке] без преобладания.

что мне не хватает? все, что мне нужно, это путь, который будет отображаться над текстовым полем, и если его нужно изменить, то пользователь использовал кнопку, чтобы перенаправить поиск. (эта кнопка не запускает поиск макроса) enter image description here

1 Ответ

0 голосов
/ 01 ноября 2018
Private Sub cmd_button_BROWSEforFolder_Click()

    On Error GoTo err
    Dim fileExplorer As FileDialog
    Set fileExplorer = Application.FileDialog(msoFileDialogFolderPicker)
    Dim folderPath As String

    'To allow or disable to multi select
    fileExplorer.AllowMultiSelect = False

    With fileExplorer
        If .Show = -1 Then 'Any folder is selected
            folderPath = .SelectedItems.Item(1)

        Else ' else dialog is cancelled
            MsgBox "You have cancelled the dialogue"
            folderPath = "NONE" ' when cancelled set blank as file path.
        End If
    End With
err:

ThisWorkbook.Sheets("Home").Range("C49") = folderPath

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