Страницы: 1
RSS
Ошибка валидации
 
Доброго дня, коллеги!  
Столкнулся со следующей проблемой.  
В Excel 2007 есть такая штука как проверка данных с выбором значений из списка. Так же в меню проверка данных можно выбрать пункт "Обвести неверные данные".  
Беда в том, что Excel считает неверными и обводит все значения из выбираемого списка, в которых присутствует символ тильда "~".  
Кто-нибудь сталкивался с такой проблемой? Как объяснить Excel'у что присутствие тильды не является признаком некорректности данных?  
Спасибо.
 
а зачем тебе символ тильда "~"
 
Создай вне диапазона список значений равных исходным значениям проверки, только без тильды. Пусть тот список и проверяет.
 
При поиске тильды помогает запрос ~~. Две тильды подряд. Иначе тильду в данных не найдёт. Попробуйте в данных заменить одну тильду на двойную, если уж без неё никак. А лучше заменить на что-то нейтральное.
 
{quote}{login=Roman}{date=04.10.2011 06:28}{thema=}{post}а зачем тебе символ тильда "~"{/post}{/quote}  
 
Мне этот символ не нужен. Я делаю макрос, который выполняет проверку книг, поступающих на вход. Одна из необходимых проверок - в ячейках, в которых должен быть выбор из списка действительно значение из этого списка.  
Для этого использьзую свойство value объекта validation.  
Но если в значении из списка есть символ тильда - value всегда = false.
 
{quote}{login=Юрий М}{date=04.10.2011 07:11}{thema=}{post}При поиске тильды помогает запрос ~~. Две тильды подряд. Иначе тильду в данных не найдёт. Попробуйте в данных заменить одну тильду на двойную, если уж без неё никак. А лучше заменить на что-то нейтральное.{/post}{/quote}  
 
Мне тильду искать не надо.  
Мне необходимо проверить корректность выбора из списка, а тильда этому мешает.  
К сожалению, изменения в структуру входных файлов вность я не могу.
 
Вот это не поможет? Предположим, в H1 есть какой-то список.  
 
Sub ert()  
Dim s$, r As Range  
'MsgBox [h1].Validation.Value
s = Replace([h1].Validation.Formula1, "=", "")
For Each r In Range(s)  
   If [h1].Value = r.Value Then MsgBox "Ok": Exit For
Next  
End Sub
 
{quote}{login=nilem}{date=05.10.2011 11:17}{thema=}{post}Вот это не поможет? Предположим, в H1 есть какой-то список.  
 
Sub ert()  
Dim s$, r As Range  
'MsgBox [h1].Validation.Value
s = Replace([h1].Validation.Formula1, "=", "")
For Each r In Range(s)  
   If [h1].Value = r.Value Then MsgBox "Ok": Exit For
Next  
End Sub{/post}{/quote}  
 
не хотелось так делать из-за производительности. Сейчас на обработку одного файла уходит до минуты (в файле порядка сотни листов). За раз обрабатываются несколько сотен файлов.  
Наверное буду запускать такую проверку, если validation.value = false And в ячейке найден "~".
Страницы: 1
Читают тему
Наверх