2016-09-21 4 views
0

Я хотел бы, чтобы сценарий VBA выполнялся в Excel и в определенный момент приостанавливался до тех пор, пока не откроется отдельная рабочая книга. Затем продолжите сценарий в оригинальной книге. Это потому, что оригинальная рабочая тетрадь должна импортировать данные из недавно открытой книги, а затем закрыть эту новую книгу после .. Предполагаю, что я должен использовать какой-то обработчик событий Windows, который следит за такими вещами, как открытие файла.
Используемые версии: MS-окна 10 и excel 2013Приостановить выполнение скрипта VBA до открытия отдельной специальной книги Excel.

+1

Как другая книга открывается? Ваш код открывает его? Если да, тогда вы должны включить свой код в вопрос. –

+0

... если нет, тогда вам нужно точно объяснить, что происходит. –

+0

Tim; Спасибо за быстрый ответ. Другая рабочая книга открывается из внешнего приложения (SAP). Пользователь запустит листинг в SAP и экспортирует его в новую книгу Excel с названием «рабочий лист в базе (1) .xlsx. К сожалению, это значение по умолчанию и не может быть изменено Когда эта рабочая книга откроется, я хотел бы иметь возможность записать оригинальную книгу и выполнить процедуру для извлечения данных из новой книги и вставить ее в заданный лист. – madmouse

ответ

5

WithEvents позволяет нам отслеживать события ActiveX, которые подвергаются автоматизации. Здесь я объявляю переменную WithEvents для мониторинга события Excel.ApplicationNewWorkbook.

enter image description here

Option Explicit 
Private WithEvents ExcelApp As Excel.Application 

Private Sub ExcelApp_NewWorkbook(ByVal Wb As Workbook) 
    If Wb.Name = "MyWorkbook.xlsm" Then Call ProcessMyWorkbook 
End Sub 

Private Sub Workbook_Open() 
    Set ExcelApp = Application 
End Sub 
Смежные вопросы