Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2009, 23:56   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
Смущение Определить, что строка содержит буквы

Как определить, что строка содержит буквы (рус. или англ.)? Также, как опр., что строка состоит только из цифр, запятых и точек и [] ?
motorway вне форума Ответить с цитированием
Старый 06.07.2009, 00:22   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вот код для чтения текста по символам,а дальше составите условие -
если цифра то сделать то
если буква то сделать то
и т.д. по своему желанию

Код:
Dim n As Integer
Dim sl, bukva As String


n = Len(sl)

For n = 1 To Len(sl)

bukva  = Mid(sl, n, 1)


Next

Либо по кодам ASCII и MS-DOS

Код:
Dim n ,m As Integer
Dim sl  As String


n = Len(sl)

For n = 1 To Len(sl)

m =   Asc(Mid(sl, n, 1))


Next

Если m в диапазоне 48-57 то цифра
если 65-90 и 97 -122 английские буквы
если 128-175 и 224-247 русские или украинские
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 06.07.2009 в 01:06.
doober вне форума Ответить с цитированием
Старый 06.07.2009, 01:18   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Option Compare Text

Sub test()
    txt = "13242342134[].,"

    If txt Like "*[A-Z]*" Then MsgBox "Строка содержит английские буквы"
    If txt Like "*[А-Я]*" Then MsgBox "Строка содержит русские буквы"
    If txt Like "*[A-Z]*" Or txt Like "*[А-Я]*" Then MsgBox "Строка содержит русские или английские буквы"
    If txt Like "*[A-Z]*" And txt Like "*[А-Я]*" Then MsgBox "Строка содержит русские и английские буквы"
    If Not IsNumeric(txt) Then MsgBox "Строка не является числом"
    If txt Like String(Len(txt), "#") Then MsgBox "Строка состоит только из цифр"

    ДопустимыеСимволы = "0123456789.,[]"
    Dim ТолькоНужныеСимволы As Boolean: ТолькоНужныеСимволы = True
    For i = 1 To Len(txt)
        ТолькоНужныеСимволы = ТолькоНужныеСимволы And InStr(1, ДопустимыеСимволы, Mid(txt, i, 1))
    Next
    If ТолькоНужныеСимволы Then MsgBox "Строка содержит только символы из набора " & ДопустимыеСимволы
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 06.07.2009, 01:19   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Function ОтброситьПравильные(s0 As String, gc As String) As String
  s = ""
  For c = 1 To Len(s0)
    If InStr(gc, Mid(s0, c, 1)) = 0 Then s = s & Mid(s0, c, 1)
  Next
  ОтброситьПравильные = s
End Function
для функции надо два параметра:
1 - строка, которую проверяем
2 - строка, содержащая "правильные символы"
если функция вернула "" - все символы правильные.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 06.07.2009, 11:01   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Где-то автор темы потерялся.
А вот я, например, под словом "строка" понимаю строку, а не ячейку..!?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 06.07.2009, 17:23   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Спасибо за код, пока не тестировал. Ну я тоже под словом строка понимаю строку
motorway вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка символов до точки. Определить, сколько слов содержат ровно три буквы "К". Evidence Паскаль, Turbo Pascal, PascalABC.NET 0 01.06.2009 20:40
Определить буквы дисков !!! Noor Общие вопросы Delphi 6 01.09.2008 09:17
Подскажите что делать если в екселе пропали буквы столбцов ivkoa Microsoft Office Excel 2 22.07.2008 16:55
Как изменить цвет текста на всей строке в RichEdit, если строка содержит определенное слово?? IIpopoK Общие вопросы Delphi 0 22.06.2008 07:57
Определить, является ли заданная строка правильной записью вещественного числа Sergik1977 Паскаль, Turbo Pascal, PascalABC.NET 2 18.10.2007 16:53