Поделиться через


Устранение неполадок со сценариями Office

При разработке сценариев Office вы можете ошибаться. Всё в порядке. У вас есть инструменты, которые помогут найти проблемы и обеспечить идеальную работу скриптов.

Примечание.

Рекомендации по устранению неполадок, относящиеся к сценариям Office с помощью Power Automate, см. в статье Устранение неполадок со сценариями Office, выполняемыми в Power Automate.

Ограничения платформы и требования

Подробный список ограничений на платформу сценариев Office, вызванных Excel, Power Automate или другими технологиями, см. в статье Ограничения платформы и требования к сценариям Office.

Ошибки скрипта

Ошибки скриптов Office делятся на одну из двух категорий:

  • Ошибки или предупреждения во время компиляции
  • Ошибки среды выполнения

Ошибки времени компиляции

Ошибки и предупреждения во время компиляции изначально отображаются в редакторе кода. Они отображаются волнистым красным подчеркиванием в редакторе. Они также отображаются на вкладке Проблемы в нижней части области задач редактора кода. При выборе ошибки приводятся дополнительные сведения о проблеме и предлагаются решения. Перед выполнением скрипта необходимо устранить ошибки времени компиляции.

Ошибка компилятора, отображаемая в тексте наведении указателя мыши редактора кода.

Кроме того, могут отображаться оранжевые подчеркивания предупреждений и серые информационные сообщения. Они указывают на предложения по производительности или другие возможности, при которых скрипт может иметь непреднамеренные эффекты. Такие предупреждения следует внимательно изучить, прежде чем их отклонять.

Ошибки среды выполнения

Ошибки среды выполнения происходят из-за проблем логики в скрипте. Это может быть связано с тем, что объект, используемый в скрипте, отсутствует в книге, таблица отформатирована иначе, чем ожидалось, или что-то другое незначительное несоответствие между требованиями скрипта и текущей книгой. Следующий скрипт создает ошибку, если лист с именем TestSheet отсутствует.

function main(workbook: ExcelScript.Workbook) {
  let mySheet = workbook.getWorksheet('TestSheet');

  // This will throw an error if there is no "TestSheet".
  mySheet.getRange("A1");
}

Некоторые ошибки среды выполнения возникают из-за превышения ограничений платформы, например при попытке записать слишком много данных одновременно с Excel в Интернете. Полный список потенциальных ошибок см. в статье Ограничения платформы и требования со скриптами Office .

Сообщения консоли

Сообщения об ошибках времени компиляции и времени выполнения отображаются в консоли при выполнении скрипта. Они дают номер строки, в которой возникла проблема. Помните, что первопричиной любой проблемы может быть строка кода, отличная от указанной в консоли.

На следующем рисунке показаны выходные данные консоли для явной any ошибки компилятора. Обратите внимание на текст [5, 16] в начале строки ошибки. Это означает, что ошибка находится в строке 5, начиная с символа 16. В консоли редактора кода отображается явное сообщение об ошибке any.

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

Журналы консоли

Вывод сообщений на экран с помощью инструкции console.log . Эти журналы могут показывать текущее значение переменных или то, какие пути кода активируются. Для этого вызовите console.log с любым объектом в качестве параметра. Как правило, самый простой string тип для чтения в консоли.

console.log("Logging myRange's address.");
console.log(myRange.getAddress());

Строки, передаваемые console.log в, отображаются в консоли ведения журнала редактора кода в нижней части области задач. Журналы находятся на вкладке Выходные данные , хотя при записи журнала на вкладке автоматически получается фокус.

Журналы не влияют на книгу.

Вкладка "Автоматизация" не отображается или скрипты Office недоступны

Следующие действия помогут устранить проблемы, связанные с тем, что вкладка "Автоматизация" не отображается в Excel.

  1. Убедитесь, что лицензия Microsoft 365 включает сценарии Office.
  2. Убедитесь, что сторонние файлы cookie включены (при использовании Excel в Интернете).
  3. Убедитесь, что администратор не отключил сценарии Office в Центр администрирования Microsoft 365.
  4. Убедитесь, что администратор не настроил групповую политику для блокировки сценариев Office (только для Windows).
  5. Установите WebView2 (только для Windows).
  6. Убедитесь, что вы не вошли в клиент как внешний или гостевой пользователь.

Важно!

При использовании Excel с Teams сценарии Office поддерживаются только в Teams в Интернете (не в Teams для Windows, Mac, iOS или Android).

Примечание.

Существует известная проблема, которая не позволяет скриптам, хранящимся в SharePoint, всегда отображаться в списке недавно использовавшихся. Это происходит, когда администратор отключает веб-службы Exchange (EWS). Скрипты на основе SharePoint по-прежнему доступны и доступны в диалоговом окне файлов.

Проблемы при планировании скрипта

Для планирования сценария требуется бизнес-лицензия для Microsoft 365. Это необходимо для потока Power Automate, который обеспечивает выполнение запланированного сценария. Ошибки из этого потока отображаются при возникновении проблем с планированием. Возможно, потребуется вручную обновить поток в Power Automate, где он будет указан в разделе Мои потоки.

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

  • Время окончания срока действия маркера доступа в формате UTC раньше, чем текущее время в формате UTC. Между входом в службу и планированием скрипта прошло слишком много времени. Повторно откройте скрипт в редакторе кода или перезагрузите книгу и повторите попытку запланировать.

Справочные ресурсы

Stack Overflow — это сообщество разработчиков, готовых помочь с проблемами программирования. Часто вы сможете найти решение проблемы с помощью быстрого поиска Stack Overflow. Если нет, задайте вопрос и пометьте его тегом office-scripts. Не забудьте упоминание вы создаете скрипт Office, а не надстройку Office.

См. также