Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечение информации между двумя символами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение информации между двумя символами (Макросы/Sub)
Извлечение информации между двумя символами
vasilek7777 Дата: Пятница, 17.08.2018, 12:04 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Можно как-нибудь быстро извлечь информацию между двумя символами .
Допустим "сегодня хорошая погода $привет Маша$ как дела"
Split()
Mid() колличество символов в ячейке постоянно меняется
 
Ответить
СообщениеДобрый день!
Можно как-нибудь быстро извлечь информацию между двумя символами .
Допустим "сегодня хорошая погода $привет Маша$ как дела"
Split()
Mid() колличество символов в ячейке постоянно меняется

Автор - vasilek7777
Дата добавления - 17.08.2018 в 12:04
Michael_S Дата: Пятница, 17.08.2018, 12:16 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;"$";ПОВТОР(" ";100));100;100))
 
Ответить
Сообщение
Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;"$";ПОВТОР(" ";100));100;100))

Автор - Michael_S
Дата добавления - 17.08.2018 в 12:16
_Boroda_ Дата: Пятница, 17.08.2018, 13:14 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Массив Split начинается с нуля. Если, допустим, нужно вытащить "привет Маша", то нам нужен второй кусок, а значит индекс отсплитованного массива будет 2-1=1
[vba]
Код
aaa = Split(Range("A1"), "$")(1)
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМассив Split начинается с нуля. Если, допустим, нужно вытащить "привет Маша", то нам нужен второй кусок, а значит индекс отсплитованного массива будет 2-1=1
[vba]
Код
aaa = Split(Range("A1"), "$")(1)
[/vba]

Автор - _Boroda_
Дата добавления - 17.08.2018 в 13:14
sv2014 Дата: Пятница, 17.08.2018, 22:53 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
vasilek7777, вариант функции ccc в C1 или функция ddd или функция aaa

[vba]
Код
Function ccc$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "[^$]+": .Global = True : ccc = .Execute(t)(1)
End With
End Function
[/vba]

[vba]
Код
Function ddd$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\$.+(?=\$)": ddd = Mid(.Execute(t)(0), 2)
End With
End Function
[/vba]

[vba]
Код
Function aaa$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\$(.+)\$": aaa = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]
К сообщению приложен файл: example_17_08_2.xls (35.0 Kb)


Сообщение отредактировал sv2014 - Пятница, 17.08.2018, 23:36
 
Ответить
Сообщениеvasilek7777, вариант функции ccc в C1 или функция ddd или функция aaa

[vba]
Код
Function ccc$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "[^$]+": .Global = True : ccc = .Execute(t)(1)
End With
End Function
[/vba]

[vba]
Код
Function ddd$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\$.+(?=\$)": ddd = Mid(.Execute(t)(0), 2)
End With
End Function
[/vba]

[vba]
Код
Function aaa$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\$(.+)\$": aaa = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 17.08.2018 в 22:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение информации между двумя символами (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!