Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 17
1

Существует ли способ вызова MsgBox, без необходимости нажимать OK для продолжения выполнения макроса

27.06.2012, 14:21. Просмотров 1541. Ответов 2
Метки нет (Все метки)

Здравствуйте, у меня есть Excel-макрос, который постоянно обновляет данные в ячейках и программа, которая считывает эти значения из Excel-файла. Проблема в том, что макрос как бы "висит", т.е. данные в Excel-е обновляется, но прога их не видит.
Методом тыка, я обнаружил, что если в цикл ввести MsgBox("Сообщение"), то на секунду прога считывает обновленные данные. Собственно вопрос: существует ли способ вызова MsgBox, без необходимости нажимать OK для продолжения выполнения макроса?
Так же, существуют ли какие-нибудь способы для временной задержи выполнения цикла (уже пробовал Sleep - не помогло)?
С Visual Basic познакомился только вчера, так что, если можно, пишите код.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub Button1_Click()
    Call MsgBox("Поместите мышку в левый верхний угол окошка с цифрами и нажмите Enter")
    Dim p As POINTAPI
    res = GetCursorPos(p)
    Dim fName As String
    fName = GetTmpPath() + "Test.bmp"
    iCycle = 0
    nBadCycles = 0
    Range("A7").Value = ""
    Range("A8").Value = ""
    Do While True
        iCycle = iCycle + 1
        MsgBox("Сообщение")
        Range("A6").Value = "Начат цикл " & iCycle
        nNew = 0
        res = ScreenSnapshot(fName, p.x, p.y, nNew)
        If Not res Then
            nBadCycles = nBadCycles + 1
            Range("A8").Value = "Циклов без результата: " & nBadCycles
            If nBadCycles >= 5 Then Exit Do
        Else
            Range("A7").Value = "Завершен цикл " & iCycle & ", новых " & nNew
        End If
    Loop
    Range("A8").Value = "Итерации завершены"
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2012, 14:21
Ответы с готовыми решениями:

Существует ли способ вызова asp или cgi из javascript без RemoteScripting
Заранее благодарен

MsgBox или UserForm с секундомером привыполнении макроса с автоматическим закрытием после выполнения
Добры день. Подскажите пожалуйста как прописать код, чтобы появлялся MsgBox или UserForm с...

Без вызова макроса
Как при вводе в ячейку значения двоеточие автоматически поменять на тире. Может, есть формула? Или...

DDE интерфейс: не нажимать каждый раз "Ок" для продолжения работы
У меня есть программа Photomodeller Scaner (www.photomodeler.com) и эта программа может работать...

2
Заблокирован
27.06.2012, 15:15 2
Вообще в каждом цикле, чтобы его не привести в зависающие состояние используется DoEvents.
1
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 17
27.06.2012, 15:55  [ТС] 3
Спасибо, друг) Написал OpenForms = DoEvents и зависания прекратились)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2012, 15:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Недостаточно памяти для продолжения выполнения программы
Пытаюсь присвоить видео аудиодорожку используя AviFile.dll, код: String fileName =...

Ожидание события для продолжения выполнения функции
Здравствуйте! Сейчас работаю над личным учебным проектом, дабы на опыте изучить javascript....

Существует ли способ создать файл ресурсов без использования brcc32.exe?
Существует ли способ создать файл ресурсов без использования brcc32.exe?

Существует ли способ расчитать свободную систему в Femap nx Nastran ? Без закрепления. Парящую в воздухе
Я решаю задачи с пластинами, которые свободные системы, самоуравновешены, например, растягивающими...

Создать процедуру stop() для предотвращения вызова макроса по таймеру
Dim intAddress As Integer Sub MovingString() Cells(1, intAddress).Value = "" If intAddress > 1...

Нужно ли предупреждать программистов о необходимости вызова критических методов?
Здравствуйте. Интересует следующий вопрос. Есть ли возможность предупредить того, кто расширяет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.