Страницы: 1
RSS
выпадающий список программно
 
Добрый вечер.  
Столкнулся с проблемой при формировании выпадающего списка:  
 
sOut = s1 & "," & s2  
cells(1, 1).Validation.Add Type:=xlValidateList, Formula1:=sOut  
 
когда s1 и/или s2 содержат ЗАПЯТУЮ.  
Есть ли выход из этой ситуации?  
Спасибо.
 
нет решения?
 
Обходной. Формировать список на скрытом листе или скрытых строках и указывать ссылку    
       Cells(1, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _  
       xlBetween, Formula1:="=Лист1!$A$1:$A$3"
 
спасибо.  
видимо это единственный (либо один из) адекватный способ...
 
А запятую в выпадающем отображать обязательно? Может быть преобразовать её во что-нибудь?
 
сейчас так и реализовано (полумера) - в данных, из которых собирается строки для списка, производится замена запятых на какую-либо невероятную комбинацию символов, напр., |||; лепятся все списки (корректно, но с ||| вместо запятых) и уже затем дополнительная процедура с обратной заменой "|||" --> "," - очень не удобно, да и не правильно, наверное.  
 
Переделаю как посоветовал anvg, если ничего не придумаю или кто-то не присоветует...
 
В качестве еще одной полумеры можно до конкатенации частей списка в каждом из них заменить запятую на визуально аналогичный символ в стандартных шрифтах chr(130) - дешево и сердито)
 
Если бы все упиралось в визуальное представление данных, то "запятая-130" - лучший обходной путь.  
Но пользователь потом захочет, напр., "проВПРиться" с базой, а там "запятая-44"  
 
Влад, спасибо за ответ.
Страницы: 1
Читают тему
Наверх