Одновременная работа в Excel

Программирование на Visual Basic for Applications
Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Одновременная работа в Excel

Сообщение Владимир7 » 31.10.2009 (Сб) 0:52

Такой вопрос: Можно ли Макросом1 включить исполнение Макроса2 и Макроса3, не последовательно: Макрос3 после окончания выполнения Макроса2, а так чтобы в то время как выполняется Макрос2 начал свою работу и Макрос3 ? т.е. более одной программной цепочки выполнялось в одно и то же время (Windows - многозадачная, процессоров более одного не редкость уже) . На форуме такого вопроса не нашёл.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Одновременная работа в Excel

Сообщение Debugger » 31.10.2009 (Сб) 11:40

Не знаю насчёт VBA, но в VB это было мазохизмом и делалось при помощи CreateThread.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Одновременная работа в Excel

Сообщение iGrok » 31.10.2009 (Сб) 13:29

Проще ответить "нет", чем расписывать весь набор условий, при которых можно начинать пробовать это сделать. )
В любом случае, в чистом виде с двумя макросами - не получится.
label:
cli
jmp label

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Одновременная работа в Excel

Сообщение Владимир7 » 08.12.2009 (Вт) 21:20

Почитал здесь:
http://www.vbnet.ru/articles/showarticle.aspx?id=20
и не то что простыми макросами, а и вообще уж сложно так всё.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Одновременная работа в Excel

Сообщение FFOX » 04.02.2010 (Чт) 17:19

Владимир7 писал(а):Почитал здесь:
http://www.vbnet.ru/articles/showarticle.aspx?id=20
и не то что простыми макросами, а и вообще уж сложно так всё.

Ну а что вы хотели?
Это сложный процесс, в предлагаемой статье как раз очень доходчиво все описано.
так что действительно проще сказать "нет, нельзя"

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Одновременная работа в Excel

Сообщение Владимир7 » 04.02.2010 (Чт) 18:03

Как один из вариантов реализации предполагал, что выполняя свой макрос (если он достаточной длительности выполнения), можно записав в исполняемом макросе такую строку
Application.OnTime Now + TimeValue("00:00:02"), "my_Procedure" начать паралелльное выполнение другого макроса, не прерывая выполнение основного макроса и не усложняя его (или может какие то другие варианты).
Без сомнения указанная статья содержит ответ на вопрос, но для применения не профессионалом - сложна.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Одновременная работа в Excel

Сообщение FFOX » 08.02.2010 (Пн) 15:29

Владимир7 писал(а):Как один из вариантов реализации предполагал, что выполняя свой макрос (если он достаточной длительности выполнения), можно записав в исполняемом макросе такую строку
Application.OnTime Now + TimeValue("00:00:02"), "my_Procedure" начать паралелльное выполнение другого макроса, не прерывая выполнение основного макроса и не усложняя его (или может какие то другие варианты).
Без сомнения указанная статья содержит ответ на вопрос, но для применения не профессионалом - сложна.

Не получится.
Бейсик передаст управление этой процедуре и пока она не закончится первая процедура будет ждать
посмотрите как работает Do Events

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Одновременная работа в Excel

Сообщение Владимир7 » 08.02.2010 (Пн) 15:53

Ну тогда может создать ещё один экземпляр приложения, открыть в нём отдельный файл и уже там выполнить свой второй макрос и всё таки параллельно с первым, или Бейсик один и и пока первая процедура не закончится нечего и выдумывать?

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Одновременная работа в Excel

Сообщение FFOX » 09.02.2010 (Вт) 9:53

Владимир7 писал(а):Ну тогда может создать ещё один экземпляр приложения, открыть в нём отдельный файл и уже там выполнить свой второй макрос и всё таки параллельно с первым, или Бейсик один и и пока первая процедура не закончится нечего и выдумывать?

Давайте вернемся к базовой задаче
почему нужна параллельная работа?
Что делают оба макроса?
Пересекаются ли данные используемые обеими макросами?

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Одновременная работа в Excel

Сообщение Владимир7 » 09.02.2010 (Вт) 15:09

С момента задания первоначального вопроса практическая сторона была давно решена, осталось желание в перспективе пополнить возможности работы с VBA в Excel. Данные, параметры тоже ведь можно передать в новый и притом возможно динамический макрос для параллельной проработки тех или иных вопросов, ну это и ускоренние и нестандартное решение.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 17

    TopList