| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Помогите с Excel |
| Автор: slang 20.7.2005, 05:23 |
| Подскажите, возможно сделать так, чтобы открытая книга Excel, например раз в 10 минут открывала Web-страницу с адресом, указанным в одной из ячеек. Затем необходимо дождатся открытия этой страницы (т.е. результат "Готово", если ошибка - перегрузить) и закрыть обозреватель, если его необходимо открывать вообще. |
| Автор: Akina 20.7.2005, 08:15 |
| Так сделать возможно. Но это мне представляется... непонятным, что ли... а даже если оно должно быть именно так как описано (весьма, кстати, сумбурно) - имхо найдется более рациональный способ нежели "в лоб". Попробуй описАть задачу до понятного... |
| Автор: slang 20.7.2005, 08:31 |
| Необходимо отправить URL запрос по адресу www.avtograd55.ru и передать через GET параметры, вычисляющиеся в Excel. Например: http://avtograd55.ru/cgi-bin/sms33.cgi?Prefix=0000&phone=0000000&message= У меня сотовый оператор не поддерживает прием SMS с e-mail, но есть сайт с которого SMS можно отправлять, а мне необходимо чтобы компьютер с работы отправлял SMS на мой телефон с различными данными, существующими и изменяющимися на листе Excel. Выше приведенная строка (с некоторыми изменениями, конечно) отправит на мой телефон SMS с текстом "privet seychas A1-1234321" |
| Автор: Akina 20.7.2005, 08:47 |
| Можно это сделать и модулем. Через API отправить запрос на хост - пара пустяков... но писАть-отлаживать муторно. Гораздо более простой (имхо) путь - ActiveWorkbook.FollowHyperlink |
| Автор: slang 20.7.2005, 10:00 | ||
| Можно чуть поподробнее про ActiveWorkbook.FollowHyperlink В справочнике из Office только синтаксис. В справочниках, которые есть ничего, а перевод идти за ссылкой мало что объясняет. Можно узнать как это действует. И возможна-ли будет цикличность в этом случае, например делать это действие каждые 10 минут? Как организовать в Office эту цикличность. функция, я так понимаю
Что обозначают аргументы в квадратных скобках? |
| Автор: Akina 20.7.2005, 10:20 | ||
|
| Автор: slang 20.7.2005, 13:48 | ||
| Чего-то не срастается, пишет ошибку: Run-time error '-2146697208 (800c0008) Automation error при исполнении кода:
Помогите сооброзить по поводу таймера... |
| Автор: likhobory 20.7.2005, 16:05 | ||||
собственно, справочный пример
кинь код в процедуру my_Procedure для отработки процедуры каждые 10 мин. |
| Автор: likhobory 20.7.2005, 17:01 | ||
+ еще вариант: создать объект браузера и поиграться напрямую с его свойствами, методами ....
|
| Автор: slang 21.7.2005, 04:31 |
| Последний вариант меня устроил больше всех! Спасибо. Но по нему есть вопрос: Когда эта процедура выполняется несколько раз, то получается запущено несколько браузеров, например за с утки откроется 144 раза. Каким образом это окно потом закрыть. Т.е. как его сделать не видимым - это понятно: ie.Visible = True/False Но реально-то окно будет запущено, соответственно для него будет выделена память и т.д., как от него можно избавится, например перед открытием следующего? |
| Автор: likhobory 21.7.2005, 10:24 | ||||||||
естественно, поскольку каждый раз отрабатывает CreateObject это ж только пример, раскидай код по процедурам
для большего удобства можно 1. создать отдельный класс, в котором объявить объектную переменную типа InternetExplorer и прописать обработчики соотв. событий (не забудь подцепить библиотеку типов shdocvw.dll) 2. в модуле создать объект этого класса и кинуть соотв. ссылку тогда можешь цеплять событие окончания загрузки страницы, например: создаем класс iie
в обычном модуле
в отдельной процедуре обновляешь страницу ( .Refresh) через указанный временной интервал |
| Автор: slang 21.7.2005, 16:07 |
| Честно говоря стыдно спрашивать, но не смог я этого сделать, как подцепить библиотеку? |
| Автор: likhobory 25.7.2005, 15:28 |
| VBE->Tools->References... |
| Автор: slang 26.7.2005, 05:25 | ||
| Спасибо!!! Добавлено @ 05:30 Кстати, само периодическое действие (см. тему) можно сделать:
|