Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/sleep между стадиями макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » sleep между стадиями макроса (Формулы/Formulas)
sleep между стадиями макроса
MAK93 Дата: Пятница, 21.04.2017, 14:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

2016
Добрый день!
Я уже все перечитал по поводу функции sleep и, по идее, она должна тормозить исполнение не всего макроса целиком, а отдельную его часть...
подскажите пожалуйста как сделать простой пример: есть Shape и его нужно спрятать, а через 0.5 секунд показать по кнопке.
сейчас прописано:

[vba]
Код
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

Private Sub CommandButton1_Click()
Shapes("пр").Visible = False
Sleep (500)
Shapes("пр").Visible = True
End Sub
[/vba]
К сообщению приложен файл: sleep.xlsm (19.3 Kb)


Сообщение отредактировал MAK93 - Пятница, 21.04.2017, 15:11
 
Ответить
СообщениеДобрый день!
Я уже все перечитал по поводу функции sleep и, по идее, она должна тормозить исполнение не всего макроса целиком, а отдельную его часть...
подскажите пожалуйста как сделать простой пример: есть Shape и его нужно спрятать, а через 0.5 секунд показать по кнопке.
сейчас прописано:

[vba]
Код
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

Private Sub CommandButton1_Click()
Shapes("пр").Visible = False
Sleep (500)
Shapes("пр").Visible = True
End Sub
[/vba]

Автор - MAK93
Дата добавления - 21.04.2017 в 14:51
Gustav Дата: Пятница, 21.04.2017, 17:34 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2743
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Дался Вам этот Sleep, сделайте через Timer:
[vba]
Код
'Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Private Sub CommandButton1_Click()
    Dim Start
    Shapes("пр").Visible = False
    'Sleep 500
    Start = Timer
    Do While Timer < Start + 0.5 '0.5 = полсекунды
        DoEvents
    Loop
    Shapes("пр").Visible = True
End Sub
[/vba]
Матчасть: https://msdn.microsoft.com/ru-ru....5).aspx


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Пятница, 21.04.2017, 17:36
 
Ответить
СообщениеДался Вам этот Sleep, сделайте через Timer:
[vba]
Код
'Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Private Sub CommandButton1_Click()
    Dim Start
    Shapes("пр").Visible = False
    'Sleep 500
    Start = Timer
    Do While Timer < Start + 0.5 '0.5 = полсекунды
        DoEvents
    Loop
    Shapes("пр").Visible = True
End Sub
[/vba]
Матчасть: https://msdn.microsoft.com/ru-ru....5).aspx

Автор - Gustav
Дата добавления - 21.04.2017 в 17:34
CAHO Дата: Воскресенье, 23.04.2017, 13:54 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 4 ±
Замечаний: 0% ±

Excel 2010
Если уж очень охота Sleep, то так
[vba]
Код
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

Private Sub CommandButton1_Click()
Shapes("пр").Visible = False
Calculate
Sleep (500)
Shapes("пр").Visible = True
End Sub
[/vba]


Сообщение отредактировал CAHO - Воскресенье, 23.04.2017, 13:55
 
Ответить
СообщениеЕсли уж очень охота Sleep, то так
[vba]
Код
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)

Private Sub CommandButton1_Click()
Shapes("пр").Visible = False
Calculate
Sleep (500)
Shapes("пр").Visible = True
End Sub
[/vba]

Автор - CAHO
Дата добавления - 23.04.2017 в 13:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » sleep между стадиями макроса (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!