#НАЗВАНИЕ!Ошибка с ранее работавшими функциями UDF - PullRequest
0 голосов
/ 21 мая 2019

У меня есть шаблон макроса рабочей книги Excel (.xltm), в котором используется лист VBA UDF;ничего большого или сложного.Функции объявлены как общедоступные и сохранены в модуле в той же книге.Шаблон использовался годами, создавая рабочие книги (.xlsm), в которых функции всегда работали безупречно.Теперь, открыв шаблон, чтобы сделать некоторые обновления, я нашел уродливое #NAME!ошибки в каждой ячейке, содержащей один из моих UDF;если я пытаюсь вставить функцию в ячейку, я больше не нахожу свои функции в списке Excel.Единственное, что изменилось в моем Excel - это версия, теперь 2019 64-битная;шаблон был создан в версии 2016 года (32-битная, но работала и с 64-битной), и, повторяю, все всегда работало идеально.Может быть, гуру Excel может дать мне подсказку для решения этой странной проблемы?

Отредактируйте пример по запросу:

Как я уже сказал, мои функции очень просты и не вызывают код APIНапример, у меня есть эти два:

Const MinValue = 0.00001
Const NullValue = -999

Public Function IsZero(r As Range) As Boolean
   'check the cell value, and returns True if the value is <= MinValue
   If IsEmpty(r.Cells(1, 1)) Then
      IsZero = True
   ElseIf IsNumeric(r.Cells(1, 1)) Then
      IsZero = (r.Cells(1, 1) <= Zero)
   End If
End Function

Public Function Zero() As Double
   ' Simply returns the MinValue value.
   Zero = MinValue
End Function

1 Ответ

0 голосов
/ 22 мая 2019

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

Быстрый способ проверить, так ли это, состоит в том, чтобы полностью перестроить цепочку зависимостей. С клавиатуры это CTRL + ALT + SHIFT + F9. Если вы обнаружите, что это происходит на регулярной основе, вы можете добавить следующую строку в ваше Workbook_Open событие:

Application.CalculationFullRebuild 

Далее предлагаются следующие значения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...