Диалоговое окно Excel VBA - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующий код:

Public Function get_workbook() As String
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.AllowMultiSelect = False
    fd.Title = "Please select the file."
    fd.Show
    get_workbook = fd.SelectedItems(1)
End Function

Это работает. Однако, если пользователь закрывает диалоговое окно после его открытия, возникает ошибка: «Недопустимый вызов процедуры или аргумент».

Как бы я go об обработке этой ошибки? Так, например, вместо этой ошибки функция просто завершается.

РЕДАКТИРОВАТЬ:

Я использую этот код, чтобы заставить пользователя открыть файл, который также работает.

Dim wb as Workbook
Set wb = Workbooks.Open(get_workbook(), ReadOnly:=True)

1 Ответ

2 голосов
/ 27 марта 2020

Добавить в обработчик ошибок. Я использовал случай выбора, чтобы вы могли добавить другие ошибки, если они возникнут.

Public Function get_workbook() As String
    On Error GoTo errcatch 
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.AllowMultiSelect = False
    fd.Title = "Please select the file."
    fd.Show
    get_workbook = fd.SelectedItems(1)
    on error goto 0
    Exit Function 'Stop code from going into error handler without an error
errcatch:
    Select Case Err.Number 'Do something based on error number
        Case 5  
            on error goto 0
            Exit Function
    End Select
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...