Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344

Вытащить из ячейки все символы кроме цифр

01.03.2017, 21:41. Показов 3769. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как вытащить из ячейки все символы кроме цифр

в ответе где два пробело д.б. подряд неотобразились в таблице, но логика понятна (все кроме цифр)
 правильный ответ
123456789, 123 лесоповал лес, лесоповал лес
1234567812345678 3241, "ййй" , "ййй"
8777лл про лес лл про лес
4586 ро 123458 ро
ццц 444 5556; длдлдццц ; длдлд
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2017, 21:41
Ответы с готовыми решениями:

Удалить все символы кроме цифр
Уважаемые форумчане! Просьба подсказать как не-хардкорным способом, а красивым и элегантным можно, к примеру, с помощью функции...

Удалить все символы, кроме латинских букв и цифр, а все большие лат. буквы сделать маленькими
всем привет, помогите исправить код программы. суть проги в том чтобы вводились множество символов пример: ASD$%^45%^hg и чтобы вывелось:...

Исключить из строки все символы, кроме цифр
Здравствуйте. Подскажите, пожалуйста, как исключить из строки абсолютно все символы, кроме цифр. Да, на просторах гугла видел кучу...

13
61 / 60 / 16
Регистрация: 13.02.2017
Сообщений: 172
01.03.2017, 21:46
Найти 1 и заменить на <пусто>
Найти 2 и заменить на <пусто>
и т.д.
0
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
01.03.2017, 21:50
Вообще навалом всяких UDF есть... типа
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Public Function ExtractString(s As String)
    Dim i As Long, str As String
    For i = 1 To Len(s)
        If InStr(1, "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ", UCase(Mid(s, i, 1))) <> 0 Then str = str & Mid(s, i, 1)
    Next
    ExtractString = Application.Trim(str)
End Function
 
Function GetNotNumericFromLeft(t As Range)
    Dim j As Integer
    For j = 1 To Len(t)
        If Not IsNumeric(Mid(t, j, 1)) Then
            If Mid(t, j, 1) <> " " Then GetNotNumericFromLeft = Mid(t, j): Exit Function
        End If
    Next j
End Function
'то же самое, что выше, но в профиль :)
Function str123(Txt As String) As String
    Dim i&
    For i = 1 To Len(Txt)
        If InStr(" 0123456789", Mid(Txt, i, 1)) = 0 Then Exit For
    Next i
    str123 = Mid(Txt, i, Len(Txt) - i + 1)
End Function
 
Function NoNum(s$)
    Static re As Object
    If re Is Nothing Then
        Set re = CreateObject("vbscript.regexp")
        re.Global = True
        re.Pattern = "\d+"
    End If
    NoNum = re.Replace(s, "")
End Function
1
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
01.03.2017, 21:52  [ТС]
smeckoi77, мы же с вами цивилизованные люди! м.б. реплас микрорекодером и поможет но нужно что-то компактное
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.03.2017, 21:53
Лучший ответ Сообщение было отмечено АЛКС как решение

Решение

Вот вариант с регулярными выражениями (сначала выдели диапазон):
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub pr1()
    Dim x As Range
    With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = "\d+"
        For Each x In Selection
            x.Offset(, 1) = .Replace(x, "")
        Next
    End With
End Sub
1
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
01.03.2017, 21:54  [ТС]
Hugo121, что то не очень вышло


 правильный ответHugo121
123456789, 123 лесоповал лес, лесоповал лес,
1234567812345678 3241, "ййй" , "ййй",
8777лл про леслл про лес 
4586 ро 123458 ро  
ццц 444 5556; длдлдццц ; длдлд 
0
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
01.03.2017, 21:59
А другие? Например NoNum сработало.

Добавлено через 2 минуты
ExtractString не сработало потому что на латиницу заточена Не уследил... Можете исправить, или дописать, если другие варианты не понравятся.
1
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.03.2017, 22:00
Hugo121, сработает, я не увидел твой ответ.
0
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
01.03.2017, 22:00
И кстати вариант на регулярках я там тоже дописал.
1
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
01.03.2017, 22:03  [ТС]
toiai, подскажите пожалуйста что это за зверь такой .Pattern = "\d+" что он делает?
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.03.2017, 22:09
Цитата Сообщение от АЛКС Посмотреть сообщение
.Pattern = "\d+"
-строка из цифр любой длины
.Global=true - учесть все вхождения строковых цифр.
.Replace(x,"") -заменить все цифры на ""
1
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
01.03.2017, 22:16  [ТС]
toiai, а этот .Pattern = "(?:^|\D)\d{4}(?=\D|$)"
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
01.03.2017, 22:23
(?:^|\D) - перед цифровой строкой либо начало строки или не цифра
\d{4} - строка непрерывных цифр длиной в 4 символа
(?=\D|$) - после цифровой строки либо не цифра или конец строки.
1
5 / 3 / 2
Регистрация: 17.02.2016
Сообщений: 344
01.03.2017, 22:34  [ТС]
toiai, а если нужно к примеру убрать (исключить) впереди до начала букв пробелы и запятые, для этого тоже какой-то потерн нужен определяющий пробел и запятую вначале?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2017, 22:34
Помогаю со студенческими работами здесь

Удалить из строки все символы кроме цифр
Программа просит ввести строку S и удаляет из неё все символы кроме цифр. Добавлено через 20 часов 30 минут помогите кто нибудь

В тексте заменить все символы, кроме цифр, на тире
Всем доброй ночи! снова нужна помощь...сессия на носу, а без практических работ не допустят...помогите написать код. Если можно, то с...

В данном тексте заменить все символы, кроме цифр, на тире. подсчитать количество оставшихся в тексте цифр
В данном тексте заменить все символы, кроме цифр, на тире. подсчитать количество оставшихся в тексте цифр.

Удалить через регулярку все символы кроме запятой и цифр
Что за регулярное выражение которое удалит из строчки все символы кроме запятой и цифр? И сразу по возможности заменит двойные запятые ',,'...

Регулярное выражение, принимающее все символы, кроме цифр и точки
Маленький вопрос. Как правильно составить регулярное выражение, которое бы проверяло на все символы, кроме цифр и символа &quot;.&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru