|
|
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
Форумчане, помогите со следующей задачей: есть файл Excel. в нем обрабатываются опред. данные. При нажатии на кнопку в этом файле необходимо создать процедуру создания нового файла с определенным именем, куда передаются данные из первого файла. Тут процедура должна прерваться и вновь созданный файл сделаться активным. Далее во вновь созданном файле пользователь производит определенные действия, и на событие ЗАКРЫТИЯ этого файла процедура первого файла, которая ранее прервалась должна возобновиться и продолжиться! - возможно ли такое сделать? написать код создания другой книги - это сделано. а как остановить процедуру и заставить ее продолжиться только после закрытия этой созданной книги? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 17:32:37 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
nosebien, ну если буквально, то делаете так: объявляете глобальную переменную, допустим stopper( она инициализируется нулем) в вашей процедуре вписываете в нужном месте код stopper=1 do doevents loop while stopper>0 оно крутится пока переменная не изменится.. а изменять по закрытию второй книги: sub workbook_beforclose() stopper=0 хотя проще разбить на две процедуры и вторую запускать по закрытии книги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 20:07:43 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
_slan_nosebien, ну если буквально, то делаете так: .... а изменять по закрытию второй книги: sub workbook_beforclose() stopper=0 хотя проще разбить на две процедуры и вторую запускать по закрытии книги. что значит изменять по закрытию книги? ведь каждый раз вторая книга создается вновь. вот меня интересует как написать процедуру закрытия второй книги? и чтоб после ее выполнения, продолжилась процедура первой книги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 21:32:37 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
nosebien, два пути 1 создать модуль класса в первой киге(или в любой другой, загруженной постоянно) и там отслеживать события 2 дописать код прямо во вторую книгу первое предпочтительней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 22:41:32 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
Элементарно. В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу. В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо. Лови пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2008, 00:21:02 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
White OwlЭлементарно. В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу. В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо. Лови пример. Спасибо, тут все понятно. НО! меня интересует следующее: при нажатии на кнопку в твоем примере происходит создание нового файла и тд. ТАК ВОТ, далее, когда создан новый файл - там тоже происходят определенные действия, и при его ЗАКРЫТИИ процедура нажатия кнопки первого файла должна возобновляться! как если бы в первом файле на нажатии кнопки стоял цикл! в котором сождается новый файл, цикл останавливается, пока новый файл не закроется. а потом возобновляется! например, в твоем примере событие кнопки: ActiveCell.Activate Workbooks.Add X.name_of_my_new_book = ActiveWorkbook.Name ''''так вот далее пользователь закрывает книгу ''' и тут же событие продолжается msgbox "The new workbook was closed" Так можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 10:00:28 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
nosebien, Ты лучше напиши что ты конкретно хочешь сделать ? Может кто предложет как это можно реализвать совсем по другому, а не так, как ты себе наметил... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 10:47:00 |
|
||
|
прерывание и возврат в процедуру
|
|||
|---|---|---|---|
|
#18+
White OwlЭлементарно. В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу. В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо. Лови пример. все я поняла :) спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 10:57:48 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35711749&tid=2180005]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
192ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 477ms |

| 0 / 0 |
