2014-10-03 4 views
0

Поблагодарите небольшую помощь, если возможно, пожалуйста.udf excel 2007 и, возможно, глобальный

Я пытался помочь коллеге в работе, сопоставляя некоторые данные. Лист - это копия всех банковских выписок, включая адрес имени и другие нерелевантные данные (нам).

данные ему требуется все имели действительную дату в столбце B, поэтому я создал UDF, как показано ниже

Public Function IsADate(rngCell As Range) As Boolean 
If IsDate(rngCell) Then 
    IsADate = True 
Else 
    IsADate = False 
End If 

End Function 

использовать функцию IsDate VBA.

Он отлично поработал.

Незадолго до окончания времени он подошел и сказал, что он больше не работал на другом листе в той же книге.

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

У кого-нибудь есть идея, что пошло не так. Он переименовал книгу, но использует ту же книгу.

Как и в сторону, я пытался сделать глобальную функцию в моей установке по

. Поместите его в Personal.xlsm, где у меня есть различные макросы, которые я использую во всех своих книгах.

b. В качестве дополнения, сохраняя как .xla и .xlam-файл, и выбирая файл в addins

Он по-прежнему не был распознан, даже не появился в списке функций.

Я пришел домой и попробовал вариант b в Excel 2003 (это все, что у меня есть), и он отлично работает в другой книге.

Недоумевает, если не сказать больше. : D

ТИА

+0

Не ответ, а предложение. 'IsDate (RngCell)' возвращает 'true' или' false', поэтому нет необходимости вставлять его в оператор 'if'. – JNevill

+0

Сначала проверьте имя вашего UDF именно на том, что вводится в строке формул. Если проблема сохраняется, тогда есть и другие способы попробовать. – ZAT

+0

Спасибо за отзыв о том, что вам не нужно использовать оператор If –

ответ

0

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

+0

Это может быть причиной. Если у меня будет время (цели для встречи: D), я попытаюсь исследовать эту теорию. Также хорошо знать, если я создаю больше. Спасибо. –