Я пишу макрос VBA в Excel, который должен открывать «fileB.xls», а затем закрываться сразу после его открытия. Поскольку мы будем говорить о трех файлах Excel, я назову первый файл A.
Код для кнопок пользовательской формы для файла A выглядит следующим образом.
Private Sub CommandButton2_Click()
'Code for Button in FileA '
Workbooks.Open Filename:="File Path/fileB.xls"
ThisWorkbook.Close
End Sub
Когда открывается файл fileB.xls, он запускает форму для сбора информации о пользователе.
Однако исходный файл не закрывается после открытия «fileB.xls».
Sub Workbook_Open()
'Code in FileB '
'Display a form to obtain information from the user. '
frmOpenFile.Show
End Sub
Возможно, стоит отметить, что fileB открывает третий и последний файл Excel (FileC). Код, подобный коду FileA, используется в FileB и прекрасно работает при запуске FileC (FileB закрывается нормально).
Идея состоит в том, что есть один "главный" файл, в котором вы выбираете, какую форму вам нужно заполнить. Затем этот мастер-файл закрывается и позволяет пользователю заполнить форму, и на основании введенных пользователем данных открывается окончательный файл Excel.
Итак, чтобы еще раз повторить проблему, FileA открывается, запускает пользовательскую форму, пользователь нажимает кнопку, File B запускается, FileA не закрывается, когда это необходимо.
Буду благодарен за любую помощь!
РЕДАКТИРОВАТЬ: я должен отметить, что если переписать FileA, чтобы напрямую открыть FileC, FileA закроется правильно. Может ли пользовательская форма из FileB предотвратить закрытие файла A?