Excel не отвечает (Microsoft Excel)
Excel часто выдает сообщение «не отвечает», когда Брайан обрабатывает любую из нескольких книг. Он задается вопросом, как лучше всего диагностировать и исправить такую проблему.
Есть ряд вещей, которые вы можете проверить, но вместо того, чтобы изобретать велосипед здесь, я просто дам несколько указателей на полезную информацию. Лучшим местом для проверки может быть База знаний Microsoft. Там есть две статьи, которые будут вам полезны. Первая статья, которую вы захотите прочитать, — это:
https://support.microsoft.com/en-gb/kb/2758592
В статье основное внимание уделяется элементам, внешним по отношению к тому, что находится в вашей книге, каждый из которых может повлиять на то, как Excel работает с вашими данными. Если вы думаете, что проблема может быть больше в том, что находится внутри вашей книги (сами данные, как они отформатированы, и дополнительные объекты), тогда вам стоит обратиться к этой статье:
https://support.microsoft.com/en-us/kb/2735548
Конечно, проблема может быть вообще не связана с вашими данными или внешними элементами. Если при запуске макроса появляется сообщение «не отвечает», это может быть из-за самого макроса. Если это так, вы захотите избавиться от своих навыков отладки и выяснить, есть ли у вас логическая ошибка в макросе, из-за которой он заходит в бесконечный цикл. (Что такое бесконечный цикл? Серия шагов, повторяющихся бесконечно, потому что условия, которые естественным образом останавливают повторение, никогда не встречаются.) В этом случае вам необходимо изменить макрос, чтобы убедиться, что условие бесконечного цикла не выполняется т происходит.
Конечно, может случиться так, что ваш макрос работает изо всех сил, и это просто занимает много времени. В таких случаях Excel, кажется, «выключает» обработку переднего плана (то, что вы видите в книге), пока макрос, работающий в фоновом режиме, не завершится.
Один из способов немного смягчить это — поместить команду DoEvents в код макроса. Это заставляет VBA переводить дух и выполнять любые «события»
которые накапливались, пока он был так занят выполнением кода, что игнорировал все остальное. Другими словами, это заставляет VBA разрешать Excel «отвечать», поэтому сообщение «не отвечает» не появляется.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13435) применим к Microsoft Excel 2007, 2010, 2013 и 2016.