Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как дать команду Excel и "заниматься своими делами". / 7 сообщений из 7, страница 1 из 1
06.05.2006, 10:51:18
    #33712381
Яровенко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
Я хочу из своей программы дать некоторое задание существующему экземпляру Excel так, чтобы моя программа не дожидалась завершения этого задания и могла работать дальше.

Пример. если я сделаю так в лоб:

mvExcel.Run("Test")
... другая последовательность операторов

То "другая последовательность операторов" не выполняется, пока не отработает Test(), а мне нужно так - дал задание Excel-ю и работаешь дальше, а о том, что Excel завершил работы я могу и через какое-нибудь событие узнать. Вот не могу сообразить, как это реализовать :(
...
Рейтинг: 0 / 0
06.05.2006, 11:20:05
    #33712495
5631
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
А в чем ты работаешь и даешь команды Excel-ю ?
...
Рейтинг: 0 / 0
06.05.2006, 11:28:55
    #33712524
Яровенко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
Работают в программке на VB6. В книге Excel есть скрипты, формирующие отчеты по SQL-базе.
...
Рейтинг: 0 / 0
06.05.2006, 11:48:54
    #33712602
5631
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
Поищи в Инете примеры на VB. Ключевое слово многопоточность.
...
Рейтинг: 0 / 0
06.05.2006, 11:51:25
    #33712614
Яровенко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
Расскажу более подробно: в проге на VB у меня есть объект Job (задание для Excel).
В начале работы я создаю в VB коллекцию JobCollection и передаю её в Excel
таким образом:
Application.Run("JobCollection",JobCollection) - при этом моя функция в Excel JobCollection просто запоминает ссылку на эту коллекцию в своей переменной.

Далее, я создаю в VB новый объект Job и как-то инициализирую его:
Job.State=0
Job.strCommand="какие-то запросы, инструкции и т.п."

Потом я добавляю это новое задание в коллекцию заданий для Excel:
JobCollection.Add Job

а вот дальше я хочу, чтобы Excel просматривал эту коллекцию (она же ему доступна), находил объекты Job у которых State=0 (не обработанные еще) и выполнял соответствующую инструкцию.
...
Рейтинг: 0 / 0
06.05.2006, 11:56:38
    #33712635
Яровенко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
Так, начал объяснять и у самого в голове некоторое прояснение появилось :))
Получается, что мне нужно просто организовать обработку ожидания в Excel, причем не тупо Sleep или Wait , когда все висит, а как-то по другому...
Или: послать "сигнал" Excel - посмотри, дружок, есть ли у тебя в очереди задания. Но при этом само приложение VB не должно дожидаться от Excel выполнения результатов.
...
Рейтинг: 0 / 0
10.05.2006, 09:32:02
    #33716769
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как дать команду Excel и "заниматься своими делами".
может это поможет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
expression   Required. An expression that returns an Application object.

EarliestTime   Required Variant. The time when you want this procedure to be run.

Procedure   Required String. The name of the procedure to be run.

LatestTime   Optional Variant. The latest time at which the procedure can be run. For example, if LatestTime is set to EarliestTime + 30 and Microsoft Excel is not in Ready, Copy, Cut, or Find mode at EarliestTime because another procedure is running, Microsoft Excel will wait 30 seconds for the first procedure to complete. If Microsoft Excel is not in Ready mode within 30 seconds, the procedure won’t be run. If this argument is omitted, Microsoft Excel will wait until the procedure can be run.

Schedule   Optional Variant. True to schedule a new OnTime procedure. False to clear a previously set procedure. The default value is True.

...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как дать команду Excel и "заниматься своими делами". / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]