Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с Excel, периодическое действие 
:(
    Опции темы
slang
Дата 20.7.2005, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Подскажите, возможно сделать так, чтобы открытая книга Excel, например раз в 10 минут открывала Web-страницу с адресом, указанным в одной из ячеек. Затем необходимо дождатся открытия этой страницы (т.е. результат "Готово", если ошибка - перегрузить) и закрыть обозреватель, если его необходимо открывать вообще.


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Akina
Дата 20.7.2005, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Так сделать возможно. Но это мне представляется... непонятным, что ли... а даже если оно должно быть именно так как описано (весьма, кстати, сумбурно) - имхо найдется более рациональный способ нежели "в лоб".

Попробуй описАть задачу до понятного...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
slang
Дата 20.7.2005, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Необходимо отправить URL запрос по адресу www.avtograd55.ru и передать через GET параметры, вычисляющиеся в Excel.
Например:
http://avtograd55.ru/cgi-bin/sms33.cgi?Pre...000000&message=privet seychas A1-1234321://http://avtograd55.ru/cgi-bin/sms33....chas A1-1234321
У меня сотовый оператор не поддерживает прием SMS с e-mail, но есть сайт с которого SMS можно отправлять, а мне необходимо чтобы компьютер с работы отправлял SMS на мой телефон с различными данными, существующими и изменяющимися на листе Excel. Выше приведенная строка (с некоторыми изменениями, конечно) отправит на мой телефон SMS с текстом "privet seychas A1-1234321"


Это сообщение отредактировал(а) slang - 20.7.2005, 08:47


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Akina
Дата 20.7.2005, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Можно это сделать и модулем.
Через API отправить запрос на хост - пара пустяков... но писАть-отлаживать муторно.
Гораздо более простой (имхо) путь - ActiveWorkbook.FollowHyperlink



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
slang
Дата 20.7.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Можно чуть поподробнее про ActiveWorkbook.FollowHyperlink
В справочнике из Office только синтаксис. В справочниках, которые есть ничего, а перевод идти за ссылкой мало что объясняет. Можно узнать как это действует. И возможна-ли будет цикличность в этом случае, например делать это действие каждые 10 минут? Как организовать в Office эту цикличность.
функция, я так понимаю
Код

Sub FollowHyperlink(A1, [SubAddress], NewWindow, [AddHistory], [ExtraInfo], [Method], [HeaderInfo])

Что обозначают аргументы в квадратных скобках?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Akina
Дата 20.7.2005, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(MSDN)
FollowHyperlink Method


Displays a cached document, if it’s already been downloaded. Otherwise, this method resolves the hyperlink, downloads the target document, and displays the document in the appropriate application.

expression.FollowHyperlink(Address, SubAddress, NewWindow, AddHistory, ExtraInfo, Method, HeaderInfo)

expression  Required. An expression that returns a Workbook object.

Address  Required String. The address of the target document.

SubAddress  Optional Variant. The location within the target document. The default value is the empty string.

NewWindow  Optional Variant. True to display the target application in a new window. The default value is False.

AddHistory  Optional Variant. Not used. Reserved for future use.

ExtraInfo  Optional Variant. A String or byte array that specifies additional information for HTTP to use to resolve the hyperlink. For example, you can use ExtraInfo to specify the coordinates of an image map, the contents of a form, or a FAT file name.

Method  Optional Variant. Specifies the way ExtraInfo is attached.  Can be one of the following MsoExtraInfoMethod constants.

MsoExtraInfoMethod type can be one of these MsoExtraInfoMethod constants.
msoMethodGet. ExtraInfo is a String that’s appended to the address.
msoMethodPost. ExtraInfo is posted as a String or byte array.


HeaderInfo  Optional Variant. A String that specifies header information for the HTTP request. The defaut value is an empty string.

Example
This example loads the document at example.microsoft.com in a new window and adds it to the History folder.

ActiveWorkbook.FollowHyperlink Address:="http://example.microsoft.com", NewWindow:=True



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
slang
Дата 20.7.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Чего-то не срастается, пишет ошибку:
Run-time error '-2146697208 (800c0008)
Automation error
при исполнении кода:
Код

Private Sub Worksheet_Activate()
    ActiveWorkbook.FollowHyperlink Address:="http://avtograd55.ru", NewWindow:=True
End Sub


Помогите сооброзить по поводу таймера...

Это сообщение отредактировал(а) slang - 20.7.2005, 13:49


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
likhobory
Дата 20.7.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



Цитата(slang @ 20.7.2005, 14:48)
Помогите сооброзить по поводу таймера...

собственно, справочный пример
Код

Application.OnTime Now + TimeValue("00:10:00"), "my_Procedure"

кинь код в процедуру my_Procedure для отработки процедуры каждые 10 мин.


--------------------
PM MAIL   Вверх
likhobory
Дата 20.7.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



+ еще вариант: создать объект браузера и поиграться напрямую с его свойствами, методами ....
Код

Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "c:\readme.html"
ie.Visible = True
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ie.Refresh


Это сообщение отредактировал(а) likhobory - 20.7.2005, 17:02


--------------------
PM MAIL   Вверх
slang
Дата 21.7.2005, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Последний вариант меня устроил больше всех! Спасибо. Но по нему есть вопрос: Когда эта процедура выполняется несколько раз, то получается запущено несколько браузеров, например за с утки откроется 144 раза. Каким образом это окно потом закрыть. Т.е. как его сделать не видимым - это понятно:
ie.Visible = True/False
Но реально-то окно будет запущено, соответственно для него будет выделена память и т.д., как от него можно избавится, например перед открытием следующего?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
likhobory
Дата 21.7.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



Цитата(slang @ 21.7.2005, 05:31)
Когда эта процедура выполняется несколько раз, то получается запущено несколько браузеров

естественно, поскольку каждый раз отрабатывает CreateObject
это ж только пример, раскидай код по процедурам
Цитата
Затем необходимо дождатся открытия этой страницы

для большего удобства можно
1. создать отдельный класс, в котором объявить объектную переменную типа InternetExplorer и прописать обработчики соотв. событий (не забудь подцепить библиотеку типов shdocvw.dll)
2. в модуле создать объект этого класса и кинуть соотв. ссылку
тогда можешь цеплять событие окончания загрузки страницы, например:

создаем класс iie
Код

Public WithEvents ie As InternetExplorer

Private Sub ie_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
''''''''''''''''''''
End Sub

Private Sub ie_DownloadBegin()
''''''''''''''''''''''''''''
End Sub

Private Sub ie_DownloadComplete()
'''''''''''''''''''''''''''''''''''
End Sub


в обычном модуле
Код

Public MyIE As New iie

Public Sub RunEvents()

 Set MyIE.ie = New InternetExplorer

 With MyIE.ie
  .Visible = True
  .Navigate "c:\readme.html"
''''''''''''''''''''''''''''''''''''''''''''''''
 End With

 End Sub

в отдельной процедуре обновляешь страницу ( .Refresh) через указанный временной интервал


--------------------
PM MAIL   Вверх
slang
Дата 21.7.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Честно говоря стыдно спрашивать, но не смог я этого сделать, как подцепить библиотеку?


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
likhobory
Дата 25.7.2005, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



VBE->Tools->References...


--------------------
PM MAIL   Вверх
slang
Дата 26.7.2005, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: нет
Всего: 0



Спасибо!!!
Добавлено @ 05:30
Кстати,
само периодическое действие (см. тему) можно сделать:
Код

Sub TT()
Application.OnTime Now + TimeValue("00:01:00"), "TT"
''''''''''''''''''''''''''''''''''''''''''''''''''''
  msgBox (Time())
End Sub



--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.