Сообщение об ошибке при нажатии "Выход" или "Отмена" в "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()
в суб импорт