VBA Webservcie Call требует времени и Excel переходит к Не отвечает

У меня есть этот вызов веб-службы в Excel через VBA.

Req.Open "POST", MyURL, False
Req.setRequestHeader "Content-Type", "text/xml"

Req.send (sReq)

В этом Req.send (sReq) требуется время, чтобы ответить, когда длина sReq слишком велика. В течение этого времени excel перестает отвечать на запросы, а затем возвращается к жизни и переходит к следующей строке кода.

Можете ли вы предложить, как я могу остановить мой Excel, не отвечая на этот шаг?

1 ответ

К сожалению, это невозможно с помощью стандартного Excel/VBA.

Чтобы обеспечить поддержку Excel во время веб-запроса, необходимо, чтобы он выполнялся асинхронно (в отдельном потоке), но поскольку VBA работает в одном потоке, это невозможно.

Тем не менее, вы можете написать VSTO (Visual Studio Tools для Office) для Excel, используя VB.NET или C#.NET, это может добавить пользовательскую вкладку ленты, где вы можете поместить кнопку для асинхронного запуска вашего веб-запроса.

Другие вопросы по тегам