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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2018, 07:32   #1
nyqpblcTuk
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 37
По умолчанию VBA вытащить информацию из текста после определенного слова

Привет друзья!

Просьба подсказать по vba как можно из ячейки вытащить информацию после искомого слова.

Например
Range("A1").Value = "Привет друг мне сегодня 20 лет, Приходи сегодня ко мне, возьми торт который я заказал, он весит 2 кг."

Так что на ум первое пришло...

Как мне составить функцию.
Чтобы макрос нашел слово "сегодня" и вытащил после слова значение c типом Long. (именно лонг, т.к. в рабочей среде там может быть большое значение)

Уже что-то два дня ковыряюсь.
А найти как это сделать не могу...

А то я уже и через сплит пытался и через поиск...

Пока что знаний не хватает это сделать.

P.S. просьба дать сцыль на хороший самоучитель по VBA.
Т.К. много еще приходится постигать по VBA, а информацию черпаю как блоха по .... из всевозможных источников.
nyqpblcTuk вне форума Ответить с цитированием
Старый 15.09.2018, 10:09   #2
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от nyqpblcTuk Посмотреть сообщение
я уже и через сплит пытался
Можно и так:
Код:
Dim a() As String
s$ = "Привет друг мне сегодня 20 лет, Приходи сегодня ко мне, возьми торт который я заказал, он весит 2 кг."
a = Split(s$)
For i = 0 To UBound(a)
' Пииск возраста
 If a(i) = "сегодня" Then
   If Val(a(i + 1)) <> 0 Then
      MsgBox "Возраст = " & a(i + 1) & " лет"
   End If
 End If
 
 ' Поиск веса
  If a(i) = "весит" Then
   If Val(a(i + 1)) <> 0 Then
      MsgBox "Вес торта = " & a(i + 1) & " кг."
   End If
 End If
 
Next
kvitaliy вне форума Ответить с цитированием
Старый 15.09.2018, 11:29   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

как вариант Regex вытянуть "(сегодня \d+ лет)" и с него уже "\d+"
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить подстроку после определенного слова от символа до символа DimDimuch911 Perl 0 22.05.2018 11:37
Вытащить информацию из оповещения Snaffu C# (си шарп) 3 06.07.2017 21:00
Дан текст. Слова в тексте отделены одним пробелом, в конце текста точка. Распечатать все слова текста, которые содержат..... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 06.02.2012 23:36
Смена регистра у текста в кавычка после заданного слова berezka04 Microsoft Office Word 18 26.09.2011 09:43
Вставить в строку подстроку после определенного слова Паскаль art_d Помощь студентам 5 07.03.2011 22:18