Мне нужно VBA (Word) для прокрутки до определенного места в документе, прежде чем отобразится окно сообщения (msgbox
) в макросе.
Я попытался:
ActiveWindow.ScrollIntoView Selection.Range, True
- Я добавил
DoEvents
перед вызовом Msgbox
.Не сработало. - Я добавил закладку, а затем выбрал закладку до
Msgbox
- Я добавил засыпатель и другие задержки перед
Msgbox
.Не сработало. - Я пробовал
Application.Screenrefresh
Ничего не работает.Msgbox
всегда отображается с курсором в том месте, где он находился до запуска макроса.
ОДНАКО, если я переберу код в редакторе VBA, все работает нормально.Только когда я выполняю код «насквозь», он никогда не наблюдает команду ScrollIntoView перед отображением msgbox.
(начало в верхней части документа) (поиск текста, скажем, на странице 3; если найден...)
ActiveWindow.ScrollIntoView Selection.Range, True
DoEvents
Application.ScreenRefresh
Selection.Bookmarks.Add "Prompt"
Selection.Bookmarks("Prompt").Select
DoEvents
Selection.Range.Select
MsgBox " TASK: " & PromptIs & String(2, 13) & " Click OK below and perform the stated task."
Курсор должен быть на найденном тексте, и текст должен быть «на виду», прежде чем отобразится окно сообщения.Это не так.