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


Устранение проблем в пользовательских функциях

При разработке пользовательских функций могут возникать ошибки в продукте при создании и тестировании функций.

Важно!

Обратите внимание, что настраиваемые функции доступны в Excel на следующих платформах.

  • Office в Интернете
  • Office для Windows
    • Подписка на Microsoft 365
    • Розничный бессрочный Office 2016 и более поздних версий
    • корпоративные бессрочные Office 2021 и более поздних версий
  • Office для Mac

Пользовательские функции Excel в настоящее время не поддерживаются в следующих приложениях:

  • Office для iPad
  • корпоративные бессрочные версии Office 2019 или более ранних версий в Windows

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

Отладка пользовательских функций

Сведения об отладке надстроек пользовательских функций, использующих общую среду выполнения, см. в статье Настройка надстройки Office для использования общей среды выполнения: Отладка.

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

Включение ведения журнала в среде выполнения

Если вы тестируете надстройку в Office для Windows, следует включить ведение журнала среды выполнения. Ведение журнала в среде выполнения отправляет операторы console.log в отдельный файл журнала, созданный для выявления проблем. Операторы охватывают разнообразные ошибки, включая относящиеся к XML-файлу манифеста надстройки, условиям среды выполнения или установке пользовательских функций. Дополнительные сведения о ведении журнала среды выполнения см. в статье Отладка надстройки с помощью журнала среды выполнения.

Проверка наличия сообщений об ошибках Excel

В Excel есть несколько встроенных сообщений об ошибках, возвращаемых в ячейку при возникновении ошибки вычислений. Для пользовательских функций используются только следующие сообщения об ошибках: #NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A и #BUSY!.

В общем случае такие ошибки уже будут вам знакомы после работы в Excel. Есть только несколько исключений, специфических для пользовательских функций:

  • Ошибка #NAME обычно означает проблему с регистрацией функции.
  • Ошибка #N/A может также указывать на то, что зарегистрированную функцию не удалось выполнить. Как правило, так происходит из-за отсутствия команды CustomFunctions.associate.
  • Ошибка #VALUE обычно связана с файлом сценария функций.
  • Ошибка #REF! может указывать на то, что имя функции совпадает с именем другой функции, которая уже есть в надстройке.

Очистка кэша Office

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

Распространенные проблемы и решения

Не удается открыть надстройку из localhost: используйте исключение локального замыкания на себя

Если отображается сообщение об ошибке "Не удается открыть эту надстройку из localhost", необходимо включить исключение локального замыкания на себя. Подробные сведения о том, как это сделать, см. в этой статье службы поддержки Майкрософт.

В журнале среды выполнения возникает сообщение об ошибке "TypeError: сетевой запрос не выполнен" в Excel для Windows

Если в вашем журнале среды выполнения отображается ошибка "TypeError: сетевой запрос не выполнен" при вызове сервера localhost, требуется включить исключение локального замыкания на себя. Дополнительные сведения о том, как это сделать, см. в разделе Вариант 2этой статьи от службы поддержки Майкрософт.

Проверка возвращения обещаний

Если Excel ожидает завершения выполнения пользовательской функции, выводится сообщение #BUSY! в ячейке. Если код пользовательской функции возвращает обещание, но это обещание не возвращает результат, Excel продолжит отображать сообщение #BUSY!. Проверьте свои функции, чтобы убедиться, что все обещания правильно возвращают результат в ячейку.

Ошибка: сервер разработки уже работает на порту 3000

Иногда во время работы npm start отображается ошибка с сообщением о том, что сервер разработки уже работает на порту 3000 (или на любом другом порту, который используется надстройкой). Можно остановить сервер разработки, выполнив npm stop или закрыв окно Node.js. В некоторых случаях для остановки работы сервера разработки может потребоваться несколько минут.

Мои функции не загружаются: свяжите функции

Если вы не зарегистрировали JSON и создали собственные метаданные JSON, может появиться сообщение об ошибке #VALUE! или уведомление о том, что надстройку не удается загрузить. Это обычно означает, что необходимо связать каждую пользовательскую функцию с ее свойством id, указанным в файле метаданных JSON. Для этого используется CustomFunctions.associate() функция . Как правило, этот вызов функции выполняется после каждой функции или в конце файла скрипта. Если пользовательская функция не связана, она не будет работать.

В примере ниже показана функция добавления, за которой следует имя функции add, связанное с соответствующим идентификатором JSON ADD.

/**
 * Add two numbers.
 * @customfunction
 * @param {number} first First number.
 * @param {number} second Second number.
 * @returns {number} The sum of the two numbers.
 */
function add(first, second) {
  return first + second;
}

CustomFunctions.associate("ADD", add);

Дополнительные сведения об этом процессе см. в разделе Связывание имен функций с метаданными JSON.

Известные проблемы

Известные проблемы отслеживаются и сообщаются в репозитории GitHub пользовательских функций Excel.

Обратная связь

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

В Excel в Windows или на Mac

Если вы используете Excel в Windows или Mac, вы можете сообщить об отзыве команде по расширению Office непосредственно из Excel. Для этого выберите Файл>Отзывы и предложения>Отправить нахмуренный смайлик. Отправка нахмуренного смайлика предоставит необходимые журналы для понимания проблемы, на которую вы указываете.

В GitHub

Вы можете сообщить о возникшей проблеме либо с помощью функции отзыва о содержимом внизу любой страницы с документацией или сообщить о новой проблеме непосредственно в репозитории пользовательских функций.

Дальнейшие действия

Узнайте, как создавать пользовательские функции, совместимые с функциями XLL, определенными пользователями.

Дополнительные ресурсы