Мне кажется, что на ваш вопрос ответил Рему, но мне кажется, что вы можете просто пытаться получить правильную конкатенацию полей имен. В этом случае вы можете использовать Mid () и распространение Null в VBA для получения результата.
Я не использую отдельные средние начальные поля, поэтому моя обычная формула объединения имен:
Mid(("12" + LastName) & (", " + FirstName), 3)
Строка "12" в начале будет отброшена, если LastName не равно NULL, и игнорируется, если она равна NULL, поскольку оператор конкатенации + распространяет значения NULL.
Чтобы расширить это, чтобы включить промежуточные элементы, выглядело бы так:
Mid(("12" + LastName) & (", " + FirstName) & (" " + MiddleInitial), 3)
Предполагая, что ваш UDF не выполняет какой-то сложной очистки псевдонимов / сокращений / и т. Д., Это может заменить его полностью, мне кажется.