История болезни
MMM
дневник заведен 22-01-2003
постоянные читатели [199]
закладки:
цитатник:
дневник:
хочухи:
местожительство:
Москва, Россия, Санкт-Петербург
интересы [21]
море, деньги, секс, Питер, горы, хакер, ценные бумаги, шиповник, активный отдых, рыба, шипение
антиресы [10]
ложь, снобизм, недосказанность, некомпетентность, бесперспективняк
31-05-2006 12:20 Visual Basic
Мля... Ненавижу эти макросы в Excel'e. Я программированием не занимался уже больше 10 лет.
Никто не знает, как в этим долбаном Visual Basic задать паузу, таймаут выполнения скрипта? Надо в цикл вставить задержечку, а я не соображу, как это сделать...
Комментарии:
Хеффалумп
Кажется, никак. Если какой-нить банальный Sleep или Delay не работает, то никак.
Хеффалумп
Если скрипт должен дождаться действий с твоей стороны, то точно никак. Если нет, то можно запустить пустой цикл и заставить его считать от 0 до 32000. В VBA это будет выполняться довольно медленно. На это время комп "зависнет", практически
Money Market Maker
О, Костя, точно, ты же монстр программирования, как я забыл!
Мне надо просто робота заставить сделать паузу, скушать "Твикс" подождать секунд 5-10 самостоятельно, вне зависимости от внешних воздействий. Попробую цикл зарядить. Правда, это будет хреново, если этот цикл будет мне весь комп тормозить. Впрочем...
А вот не подскажешь еще, как эту конструкцию
ActiveWorkbook.FollowHyperlink Address:=...
заставить открывать ссылки не в новых окнах броузера, а в текущем, уже открытом?
Хеффалумп
MMM Цытирую из хелпа :
Syntax

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

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

Т.е. примерно так:
ActiveWorkbook.FollowHyperlink (Address:=..., NewWindow:=False )

Ну или как там сокращенный синтаксис вызова метода.
Хотя странно, ведь по дефолту он в старой странице должен открывать.

Длинный цикл может и не затормозить комп. Я не уверен. Просто у меня был скриптик, который перебирал по слову весь документ, и он таки все подвешивал. Т.е. не совсем подвешивал, но если что-нить тронуть во время его работы, то избавиться можно было тока через Ctrl+Break.
Money Market Maker
Да, Кость, в том и засада, что игнорирует эта зараза NewWindow:=False - все в новых окнах открывает.
Я думал, может я что не так в хелпе понял...
Ну ладно, попробую методом нацчного тыка найти что-нибудь...
Спасибо тебе за подсказки!
Хеффалумп
MMM вот гад!.. Вообще, в VBA, много непоняток, похожих на глюки... А жаль. Прекрасная идея.
Не за что. Обращайся еще.
Хеффалумп
Ну как, справился?
Money Market Maker
С задержкой справился, вставил пустой цикл по твоему совету. Железозависимая задержка получилась, конечно, но мне там точность и не была нужна. А вот открытие ссылок в одном окне так и не победил: открываются новые окна форматом с окно Excel, из которого эти ссылки и генерируются.
В результате выставил задержку побольше и прикрываю этот popup вручную, получился не робот, а полуавтомат
Но работает.
Хеффалумп
MMM ну полный робот на этом дурацком VBA и не сделаешь, как правило...
Был у меня робот, который из документа делал html c сохранением форматирования и концевых сносок. Так его чуть ли не под каждый документ приходилось переделывать
Закрыть