2014-12-08 2 views
1

Я сделал макрос Excel, который дает результаты с помощью решателя. После создания результата он отображает диалоговое окно, чтобы принять результат. Поскольку у меня есть 50 решающих результатов в макросе, я должен нажать ОК 50 раз.Код VBA для автоматического нажатия OK в Excel

Есть ли какие-нибудь настройки в VBA, которые можно сделать, чтобы автоматически нажать OK или нажать Enter?

+0

Почему бы просто не вывести диалоговое окно из кода? Просто поместите данные решателя в лист или что-то еще. Почему появляется окно, если вы просто хотите его автоматически очистить? – Chrismas007

+0

Диалоговое окно не создано мной в VBA. Это результат отображения решения excel, реализованного в макросе. Пожалуйста, помогите мне с командой sendkeys. –

ответ

1

SendKeys "~" выполнил эту работу для меня. Введите этот код после команды solversolve и введите автоматически введенный текст, нажав OK и закрыв окно.

0

В команде vba есть команда SendKeys. Это позволяет имитировать нажатия клавиш.

+0

спасибо, что помогли! –

-1

Не уверен, но попробовать Application.DisplayAlerts

То есть, изменить макрос:

Application.DisplayAlerts = False «отключает диалог подсказывает

your_macro_code_here

Application.DisplayAlerts = True 'возвращается к диалоговым запросам для нормального использования

+0

Хотя это «ответ», обычно полезно указать причины или источники для резервного копирования ответов вместо «не уверенных» догадок. – Chrismas007

3

есть более простой способ. введите это в свой код: "solversolve (true)" True делает solver возвращать результаты без отображения диалогового окна результатов решения

+0

SendKeys, DisplayAlerts - MSDN заявляет, что использует 'SolverSolve' (https://msdn.microsoft.com/en-us/library/office/ff197237.aspx). Может даже выполнить другой макрос, а не отображать форму решения - почему бы вам не использовать этот метод? –

Смежные вопросы