Страницы: 1
RSS
Удалить из текста все, что перед последней косой чертой
 
Добрый день!
Как правильно удалить часть текста c помощью VBA?
Т. е. мне нужно допустим удалить в тексте все что перед последней косой чертой
Код
Z = Replace(Z, "*\", "")

такая строка не срабатывает
 
Код
Z =MID(Z,len(Z)-instr(1,strreverse(Z),"\")+1,256)
Изменено: БМВ - 05.10.2018 19:00:03
По вопросам из тем форума, личку не читаю.
 
Привет, Михаил.
Зачем же так усложнять - это ж не формулы?
Код
?Mid$("this\is\text", InStrRev("this\is\text", "\") + 1)
 
Спасибо!
а с помощью регулярных выражений никак нельзя? если допустим будет больше одного символа "разделителя"?
 
Цитата
alexandrkudryavcev написал: будет больше одного символа
А проверить и поэкспериментировать?
Код
?Mid$("this\is\text", InStrRev("this\is\text", "s\") + 1)
 
Андрей VG, Андрей, да пока от кошаков отбивался запамятовал InStrRev :-) а вот эту Mid$ консттрукцию недолюбливаю :-)
Цитата
alexandrkudryavcev написал:
если допустим будет больше одного символа "разделителя"?
Вы б пример привели, а то что у вас содержит Z нам только догадываться.
По вопросам из тем форума, личку не читаю.
 
а вопрос(?) перед MID  так надо? а то у меня на
Код
z = ?Mid$(z, InStrRev(z, "s\") + 1)

ошибка выходит

все. разобрался. работает
Спасибо
Изменено: alexandrkudryavcev - 05.10.2018 19:30:13
 
Цитата
БМВ написал: MID(Z,len(Z)-instr(1,strreverse(Z),"")+1,256)
а здесь он до первого найденного символа заменяет
 
Андрей VG, вечно вы со своими вопросами (?) :-)

только S там совсем ненужен, Андрей, прекратите троллить ТС. Уровень немного разный он все принимает за чистую монету :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
alexandrkudryavcev написал: а здесь он до первого найденного
да но так как с реверсом, то до первого с конца.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Андрей, прекратите троллить ТС.
с чего вдруг? Просто готовый пример, чтобы можно было тестировать в immediate.
 
Цитата
Андрей VG написал:
immediate
так про него знать надо. :-)
По вопросам из тем форума, личку не читаю.
 
нет файл-примера,как вариант aaa для #4 в E1 для текста из #5  или bbb
Код
Function bbb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "^.+(?=\\)"
  bbb = Mid(.Replace(t, ""), 2)
 End With
End Function
 
Код
Function aaa$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "^.+\\(.+)$"
  aaa = .Replace(t, "$+")
 End With
End Function
Изменено: кузя1972 - 05.10.2018 22:53:42
 
ещё вариант UDF в B1
Код
Function ccc$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^\\]+": .Global = True
  ccc = .Execute(t)(.Execute(t).Count - 1)
 End With
End Function
Изменено: кузя1972 - 06.10.2018 19:03:48
Страницы: 1
Наверх