Устранение проблем в пользовательских функциях
При разработке пользовательских функций могут возникать ошибки в продукте при создании и тестировании функций.
Важно!
Обратите внимание, что настраиваемые функции доступны в Excel на следующих платформах.
- Office в Интернете
- Office для Windows
- Подписка на Microsoft 365
- Розничный бессрочный Office 2016 и более поздних версий
- корпоративные бессрочные Office 2021 и более поздних версий
- Office для Mac
Пользовательские функции Excel в настоящее время не поддерживаются в следующих приложениях:
- Office для iPad
- корпоративные бессрочные версии Office 2019 или более ранних версий в Windows
Для устранения проблем можно включить ведение журнала в среде выполнения для регистрации ошибок и ознакомиться с собственными сообщениями об ошибках Excel. Проверьте также на наличие распространенных ошибок, например оставление неразрешенных обещаний.
Отладка пользовательских функций
Сведения об отладке надстроек пользовательских функций, использующих общую среду выполнения, см. в статье Обзор отладки надстроек Office.
Сведения об отладке надстроек пользовательских функций, которые не используют общую среду выполнения, см. в статье Отладка пользовательских функций.
Включение ведения журнала в среде выполнения
Если вы тестируете надстройку в Office для Windows, следует включить ведение журнала среды выполнения. Ведение журнала в среде выполнения отправляет операторы console.log
в отдельный файл журнала, созданный для выявления проблем. Инструкции охватывают различные ошибки, включая ошибки, связанные с файлом манифеста надстройки, условиями среды выполнения или установкой пользовательских функций. Дополнительные сведения о ведении журнала среды выполнения см. в статье Отладка надстройки с помощью журнала среды выполнения.
Проверка наличия сообщений об ошибках 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, определенными пользователями.
Дополнительные ресурсы
Office Add-ins