![]() |
|
Модераторы: mihanik |
![]()
|
|
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Excel автозапускается из сторонней программы, открывается Лист1 и в него из массива из этой программы пишутся данные. Затем после того, как все данные загрузились, требуется автозапуск макроса для обработки в Excel.
Сейчас делаю просто с помощью такой функции:
задержку перед запуском макроса секунд 10. А если все данные в Excel уже загружены были за 2 секунды ? Или они будут грузиться 1 минуту ? Есть способ определить, что если количество строк в Листе1 не меняется в течении 3 секунд, то делать автозапуск макроса ? Или вручную писать функцию ? -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Есть... а зачем? Во-первых, несложно запустить макрос извне. Во-вторых, вполне можно настроить макрос считать окончанием загрузки, например, появления строка "усё!" в ячейке А1 (чтобы не мешало - белым по белому, скажем). Кстати, макрос сначала может вычистить этот маркер, а потом заниматься своими делами. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Akina,
Это я уже догадался -------------------- i_i (';') (V) ![]() |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Ясен пень надо! не хочешь? ну тогда предлагаю такой костыль: Делаем шаблон. В нём - макрос, который запускается при открытии книги. Если макрос обнаруживает на [Лист1] данные - он выполняет обработку, иначе просто завершается. Далее - программа открывает этот шаблон. Макрос срабатывает, данных нет, он тут же завершается. Программа заполняет лист данными из массива и сохраняет (SaveAs - дабы не поганить шаблон) файл на диск. И тут же открывает снова. Макрос опять срабатывает, обнаруживает данные и выполняет требуемые действия. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
В сторонней программе пишу "END" в самый конец листа Excel, затем вызываю функцию:
если она вернула true, то сразу же запускаю макрос уже из Excel. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Мда...
1) Зачем флаг? DataIsLoaded - такая же переменная, работай прямо с ней. 2) Do While Flag <> True А почему не Do While NOT Flag 3) If Cells(i, 1) = "END" Then Flag = True А почему не Flag = (Cells(i, 1) = "END") 4) Зачем организовывать свой цикл, если есть Range.Find? И почему не поместить твой "END" в самом начале, чтобы проверять ОДНУ ячейку с известным (А1, например) адресом? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voldemar2004 |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Тоже самое, только записано по-другому. Тоже самое, только записано по-другому.
Откуда будет известен этот ?? Добавлено @ 09:53
Это сообщение отредактировал(а) Voldemar2004 - 25.11.2010, 09:57 -------------------- i_i (';') (V) ![]() |
||||||||||
|
|||||||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Сначала загружаются данные. А потом ставится признак. Но почему он ставится ПОСЛЕ загруженных данных? не по времени - по месту расположения... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Сверху шапка таблицы, количество данных каждый раз разное -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Вот и убери в неё признак загрузки - она же статическая, адреса ячеек известны... скажем, после окончания загрузки данных делаешь шрифт в неиспользуемой ячейке жирным (или там зелёным). И проверять надо только этот параметр и только у этой (одной и с известным адресом) ячейки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Akina, ну улучшать и придумывать можно до бесконечности
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Ну не надо так не надо... мне-то что.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |