Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/32: Рейтинг темы: голосов - 32, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 7

Поиск и извлечение определенного числа из текста

22.02.2012, 03:38. Показов 7029. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите кто сможет. Есть столбец с пояснениями, в нем по мимо текста есть номер отдела, вопрос в том как вытащить его в сосоднюю ячейку. Дело осложнчетсч еще тем что их воснмь штук. А некоторые пояснения вообще не содержат номера отдела.

Вот примерно как должно выглядеть.

Code
1
2
3
4
5
6
7
8
А                    В
Текст 4157           4157
Текст 4205 текст     4205
Тект 03 7151         7151
Текст 4567 8635      8635
Текст 8636           8636
8567 текст           8567
Тест 547 текст       0
Помогите с задачкой кто сможет. Буду очень признателен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2012, 03:38
Ответы с готовыми решениями:

Поиск текста в ячейках определенного цвета
Добрый день, уважаемые программисты. Помогите решить вопрос. В книге находится несколько листов, некоторые ячейки которых...

Поиск определенного текста в столбце(строке) и удаление всей строки
Друзья, подскажите, пожалуйста, как в определенном столбце найти определенный текст и удалить все строки содержащие этот текст. Или не...

Поиск определенного текста в файле .txt и вставка в определенную ячейку в Excel
Доброго времени суток. Допустим есть файл info.txt ( состоит из множества строк, например gsd = 797 .... dig = 7666 и т.д.) в корне в с...

25
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
01.03.2012, 16:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ironegg Посмотреть сообщение
Visual Basic
1
2
3
4
For Each C In Range("i2:i9").Cells
s = s & C.Text & "|"
Next
s=Left(s, Len(s) - 1)
можно заменить на
Visual Basic
1
s = Join(Application.Transpose(Range("i2:i9")), "|")
1
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
01.03.2012, 19:15
да. так красивее.
вижу только одно непринципиальное ограничение. справочник обязательно должен быть столбцом(что и является нормальной практикой), а не диапазоном произвольной формы.
ну и на случай пустых ячеек в цикл легко добавить условие
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
01.03.2012, 19:27
ironegg, попробуйте потестировать на скорость
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub a()
Dim t!, s$, C
t = Timer
For Each C In Range("i2:i65536").Cells
    s = s & C.Text & "|"
Next
s = Left(s, Len(s) - 1)
Debug.Print Timer - t
End Sub
 
Sub a2()
Dim t!, s$
t = Timer
s = Join(Application.Transpose(Range("i2:i65536")), "|")
Debug.Print Timer - t
End Sub
0
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 48
04.03.2014, 15:03
Вопрос в продолжение темы:
есть файл excel, в нем в тексте помимо другой информации есть 9-ти и 10-значные числа.
Задача: вывести их в отдельный столбец.
Формулой знаю как сделать, (обсуждение есть в теме Форум MS Office Excel) хотелось бы попробовать макросом...
Заранее спасибо! )
Вложения
Тип файла: xlsx Primer.xlsx (9.5 Кб, 8 просмотров)
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
04.03.2014, 17:55
UDF:
Visual Basic
1
2
3
4
5
6
7
8
Function nums910$(ByVal txt$)
    Dim i&
    txt = " " & txt & " "
    For i = 1 To Len(txt) - 10
        If Mid$(txt, i, 11) Like "[!0-9]#########[!0-9]" Then nums910 = Mid$(txt, i + 1, 9): Exit For
        If Mid$(txt, i, 12) Like "[!0-9]##########[!0-9]" Then nums910 = Mid$(txt, i + 1, 10): Exit For
    Next i
End Function
1
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
04.03.2014, 18:01
Предложу вариант с регулярными выражениями:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Proba()
    Dim x As Range
    With CreateObject("vbscript.regexp"): .Global = True
        .Pattern = "\d{9,10}"
        For Each x In Range("A2:A10")
            With .Execute(x)
                If .Count = 1 Then x.Offset(0, 1) = .Item(0)
            End With
        Next
    End With
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2014, 18:01

Извлечение определенного участка текста
В TextBox1 есть текст "договор № 512 от 01.01.2015 (далее – Договор)" Как по нажатию кнопки в TextBox2 получить "512", а в...

Поиск определенного текста на экране
Доброго времени суток. ;) :) Я хочу попросить о помощи пользователей данного форума, т.к. мой уровень знаний для написания этого скрипта...

Поиск определенного текста в TextBox
Предположим у нас есть текстовое окно TextBox в нем мы записали куча текста и нам нужно найти определенный текст. то есть сделать команду...

Поиск по файлу определенного фрагмента текста
Добрый день. Столкнулся я со следующей проблемой и посему прошу совета у более опытных товарищей. Необходимо создать программу...

Поиск и замена в запущенном приложении определенного текста
Ребят! Помогите дописать код. Программа должна искать в запущенном приложении определенный текст и подменять его(На манер Cheat Engine) ...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru