Поиск и разрешение конфликтов наименований пользовательских функций
1. Проверьте, не совпадает ли наименование пользовательской функции с наименованием встроенной функции. На вкладке Функции (Functions) в группе Функции (Functions) выберите Все функции (All Functions), а затем выполните поиск наименования пользовательской функции.
2. Проверьте, не совпадает ли наименование пользовательской функции с наименованием другой пользовательской функции. Вычислите системную переменную CustomFunctions и проверьте, не появляется ли наименование пользовательской функции в нескольких строках возвращенной матрицы.
Возвращенная матрица содержит три столбца и одну строку для каждой пользовательской функции. Первый столбец содержит наименование файла DLL, второй столбец содержит наименование пользовательской функции, а третий столбец содержит строковое представление объекта пользовательской функции.
Порядок строк сверху вниз представляет очередность чтения при вызове пользовательской функции. Если наименование пользовательской функции появляется более чем в одной строке, то вызывается та функция, которая выше.
Функция sin в строке 4 приведенного выше списка пользовательских функций имеет то же самое наименование, что и встроенная функция sin.
3. Чтобы ее переименовать пользовательскую функцию, назначьте ей новое наименование, например sinALT:
У вас теперь есть доступ к обеим версиям функции
sin.
| • Можно вычислить функции без их аргументов, чтобы проверить их источник. Например, при вычислении sinALT и sin можно проверить, что они вызывают userpack.dll и встроенную функцию соответственно: • Можно использовать приведенную выше процедуру для переименования пользовательских функций, имеющих длинные или нелогичные наименования. |