Сообщение об ошибке при нажатии "Выход" или "Отмена" в "Application.GetOpenFilename"

Я импортирую определенный лист из рабочей книги в текущую рабочую книгу, с которой я работаю. Импорт работает нормально, удаляя текущий лист перед повторным импортом. Есть одна маленькая вещь, которую нужно исправить. Когда я отменяю или выхожу GetOpenFilename Приложение поставляется с:

False.xlsx не был найден (...)

поэтому я добавил:

filespec = Application.GetOpenFilename() 
If filespec = False Then Exit Sub

в Sub import_click(), но я не хочу, чтобы он дважды спрашивал меня о файле. Однако, если я не включу filespec = Application.GetOpenFilename() это не работает Вот код:

Sub import_click()
    filespec = Application.GetOpenFilename()

    If filespec = False Then Exit Sub

    Call deletedatasheet
    Call import

    MsgBox "Data imported", vbInformation

End Sub

Private Sub import()

Dim wsMaster As Worksheet
Dim rd As Range

Application.ScreenUpdating = False
Application.DisplayAlerts = False

    If wsMaster Is Nothing Then
        ThisWorkbook.Sheets.Add
        Set wsMaster = ActiveSheet
        Set rd = wsMaster.Range("A1")
        wsMaster.Name = "Reviewed"
        filespec = Application.GetOpenFilename()
        Set wb = Workbooks.Open(Filename:=filespec)
        Sheets("Reviewed").Activate
        Cells.Copy rd
        wb.Close
    End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub

Sub deletedatasheet()
    Dim ws As Worksheet

    Application.DisplayAlerts = False
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = "Reviewed" Then
            ws.Delete
        End If
    Next
    Application.DisplayAlerts = True
End Sub

Как мне успешно выйти или отменить GetOpenFilename приложение и попросить файл только один раз?

1 ответ

Решение

Переменная filespec должна быть публичной, если вы хотите использовать ее в другом подпрограмме. Добавьте эту строку перед "Sub import_click()": Public filespec As Variantи удалить / комментарий filespec = Application.GetOpenFilename() в суб импорт

Другие вопросы по тегам