У меня есть макрос, который открывает пользовательскую форму, чтобы фиксировать дату начала и окончания. После нажатия кнопки «ОК» в пользовательской форме открывается диалоговое окно файла, чтобы открыть книгу Excel.Не удается закрыть книгу после запуска sub с userform
Сразу после запуска нижнего элемента я не могу закрыть книгу, которая открывается с помощью «X» в правом верхнем углу. Я также не могу сохранить книгу, щелкнув значок сохранения.
Однако, если я нажму на другую книгу или переключись на другой лист в открытой книге, а затем вернусь к тому, который открывается субблоком, все работает так, как должно быть.
Кроме того, я заменяю пользовательскую форму двумя полями ввода, чтобы фиксировать каждую из двух дат, я могу закрыть книгу, которая открывается без проблем.
Возможно, есть что-то смешное с кодом пользователя?
Это все, что находится в пользовательской форме.
Private Sub Ok_button_Click()
call module1.forecast
unload userform1
end Sub
И это основной подпункт.
Sub forecast()
dim start_SFY as long
dim end_SFY as long
dim filesToOpen as object
dim wb as workbook
Application.ScreenUpdating= False
start_SFY = userform1.textbox1.value
end_SFY = userform1.textbox2.value
set filesToOpen = application.fileDialog(msoFileDialogOpen)
filesToOpen.show
set wb = application.workbooks.open(filesToOpen.selecteditems(1),false)
Application.ScreenUpdating= True
End Sub
Вот к югу показывая UserForm1
Sub run_userform()
userform1.show
End Sub
Кроме того, здесь есть версия Excel:
Excel 2013 64-разрядный (15.04753.1003) Часть Microsoft Office 365 ProPlus
Может кто-то может попытаться воспроизвести проблему, которая у меня есть? Мне интересно, если это проблема, связанная с версией Excel моего работодателя или чем-то еще?
Такие вещи никогда не случались со мной раньше.
Кроме того, я могу закрыть программу с помощью VBA. Это просто при попытке щелкнуть «X», который он не будет закрывать.
Update:
Я был в состоянии получить код, без изменений, чтобы нормально работать дома на Excel 2016. Я собираюсь получить сослуживец, чтобы проверить на их системе сегодня.
Когда я был дома, я не нажимал кнопку, чтобы называть ее на листе. Я вызвал его из редактора VBA. После некоторого тестирования этим утром кажется, что кнопка является проблемой. Если я вызову sub из редактора VBA, я могу закрыть открытую книгу. Однако, если я использую кнопку команды (элемент управления формой, а не ActiveX, поскольку я получаю сообщение об ошибке «Невозможно нарисовать объект» всякий раз, когда я пытаюсь добавить какой-либо объект ActiveX на рабочий лист), открытая книга не будет закрыта.
Я думаю, что я нашел эту проблему
Этого вопрос, кажется, с «кнопкой управления формой команды». ActiveX был отключен в Центре доверия. Когда я включил его и создал командную кнопку, мне удалось закрыть открытую книгу. Затем я снова попробовал кнопку формы команды и не смог закрыть открытую книгу.Я также успешно смог закрыть открытую книгу, когда я запустил sub из вспомогательного списка на вкладке разработчика, и когда я поместил sub в ленту Excel и запустил ее оттуда.
Любая идея относительно того, почему кнопка командной кнопки управления вызовет эту проблему?
показать макрос вызова UserForm1 – user3598756
Кажется для меня был подобный вопрос, на который я ответил не так давно ... позвольте мне проверить мою историю. –
, но ответа не было (хотя было несколько попыток, один из которых может быть вам полезен): http://stackoverflow.com/questions/41244457/unable-to-close-opened-excel-workbook/41287563 # 41287563 –