Я решил эту проблему, создав специальный PropertyDescriptor для полей поиска. Дескриптор свойства будет выполнять обратный поиск, когда метод setValue вызывается объектом listobject. Он будет выполнять прямой просмотр при вызове GetValue.
Таким образом, что касается объектной модели, он получает правильные значения, а Excel получает правильный текст. Затем я могу использовать проверку Excel для создания раскрывающихся списков в пользовательском интерфейсе.
Проблема в том, что текст поиска должен быть уникальным. В противном случае обратный поиск невозможен.