Как узнать, есть ли в заданном диапазоне буквы...

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Как узнать, есть ли в заданном диапазоне буквы.
Пример моего кода (привожу отрывок из кода):

Код: Выделить всё

Set myRange = ActiveDocument.Range(Start:=0, End:=0)
    For Each oCell In Selection.Tables(1).Range.Cells
            myRange.SetRange Start:=oCell.Range.Start, End:=(oCell.Range.End - 1)
            If IsNumeric(myRange) = True Then
Как узнать, есть ли в диапазоне myRange буквы.
Вообще, смысл кода в чём? В том, чтобы просмотреть ячейки всех таблиц в документе (я как всегда косячу - в данном случае приведён пример для одной таблицы), и если там есть только цифры, то сделать определённое действие. На др. форумах я нашёл решение этой проблемы, но вчера столкнулся с цифрами, разделёнными точками и запятыми, и эти цифры уже не считаются за цифры.
romanriddick
Сообщения: 16
Зарегистрирован: 06 июл 2010, 13:16

делаете Split(диапазон , "розделитель") , отделяете цифры от знаков , а потом уже isNumeric()
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

romanriddick
Вот такое неожиданно простое решение нашёл на др. форумах - использование Replace. Сам бы наверное если и догадался об этом, то очень ‎не скоро:‎

Код: Выделить всё

If IsNumeric(myRange) = True Or IsNumeric(Replace(myRange, ",", "")) = True Or ‎IsNumeric(Replace(myRange, ".", "")) = True Then
В документе 192 таблицы – проверка была проведена за 2 минуты. Хорошая работа.‎
Ответить