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

Вход

Регистрация

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

 

= Мир MS Excel/Удалить часть текста внутри ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить часть текста внутри ячейки (Макросы/Sub)
Удалить часть текста внутри ячейки
den45444 Дата: Вторник, 21.06.2016, 23:21 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Помогите с решение макроса.
Нужно удалить часть текста внутри ячейки. Текст начинается и заканчивается звездочкой "*"
Файл-пример прикрепил
К сообщению приложен файл: ghbvth.xlsx (11.5 Kb)
 
Ответить
СообщениеПомогите с решение макроса.
Нужно удалить часть текста внутри ячейки. Текст начинается и заканчивается звездочкой "*"
Файл-пример прикрепил

Автор - den45444
Дата добавления - 21.06.2016 в 23:21
wild_pig Дата: Вторник, 21.06.2016, 23:57 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
[vba]
Код
Sub uuu()
    With CreateObject("VBScript.RegExp")
        .Pattern = "\*.+\*"
        For Each c In Range("B4:B9")
            c.Value = .Replace(c.Value, "")
        Next
    End With
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Код
Sub uuu()
    With CreateObject("VBScript.RegExp")
        .Pattern = "\*.+\*"
        For Each c In Range("B4:B9")
            c.Value = .Replace(c.Value, "")
        Next
    End With
End Sub
[/vba]

Автор - wild_pig
Дата добавления - 21.06.2016 в 23:57
sv2014 Дата: Среда, 22.06.2016, 06:16 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
den45444, вариант функции vvv в столбце P

[vba]
Код
Function vvv$(t$)
vvv = Replace(t, "*" & Split(t, "*")(1) & "*", "")
End Function
[/vba]
К сообщению приложен файл: example_22_06_2.xls (38.0 Kb)
 
Ответить
Сообщениеden45444, вариант функции vvv в столбце P

[vba]
Код
Function vvv$(t$)
vvv = Replace(t, "*" & Split(t, "*")(1) & "*", "")
End Function
[/vba]

Автор - sv2014
Дата добавления - 22.06.2016 в 06:16
_Boroda_ Дата: Среда, 22.06.2016, 07:45 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще вариант
[vba]
Код
Sub tt()
    Columns("B:B").Replace What:="~**~*", Replacement:=""
End Sub
[/vba]

Добавлено
При замене через Конрл+h звездочка является подстановочным знаком и обозначает любое количество произвольных символов (знак вопроса - один произвольный символ), а вот если нужно найти сам подстановочный символ, то перед ним нужно написать тильду "~", вот так: ~*
Тогда конструкцию ~**~* можно перевести на русский примерно так - "Все символы, начиная от первой и заканчивая последней звездочками (обе звездочки включительно)".


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Среда, 22.06.2016, 09:38
 
Ответить
СообщениеЕще вариант
[vba]
Код
Sub tt()
    Columns("B:B").Replace What:="~**~*", Replacement:=""
End Sub
[/vba]

Добавлено
При замене через Конрл+h звездочка является подстановочным знаком и обозначает любое количество произвольных символов (знак вопроса - один произвольный символ), а вот если нужно найти сам подстановочный символ, то перед ним нужно написать тильду "~", вот так: ~*
Тогда конструкцию ~**~* можно перевести на русский примерно так - "Все символы, начиная от первой и заканчивая последней звездочками (обе звездочки включительно)".

Автор - _Boroda_
Дата добавления - 22.06.2016 в 07:45
den45444 Дата: Среда, 22.06.2016, 09:33 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, благодарю за помощь.
А как сделать, чтобы те строки, в которых текст со звездочками указан с новой строки, выравнивались по высоте?
 
Ответить
Сообщение_Boroda_, благодарю за помощь.
А как сделать, чтобы те строки, в которых текст со звездочками указан с новой строки, выравнивались по высоте?

Автор - den45444
Дата добавления - 22.06.2016 в 09:33
den45444 Дата: Среда, 22.06.2016, 09:52 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, смысл символов понял, но как сделать не понял. пытался поставить пробел, но макрос перестает работать или неправильно обрабатывает строки.
 
Ответить
Сообщение_Boroda_, смысл символов понял, но как сделать не понял. пытался поставить пробел, но макрос перестает работать или неправильно обрабатывает строки.

Автор - den45444
Дата добавления - 22.06.2016 в 09:52
_Boroda_ Дата: Среда, 22.06.2016, 09:58 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Нууу, тут не я один отметился.
По поводу выравнивания - на первый взгляд - другой вопрос и нужно создавать новую тему, но, как оказалось, не совсем так и все немного усложняется
Вот такой вариант
[vba]
Код
Sub tt()
    With Columns("B:B")
        .Replace What:=Chr(10) & "~**~*", Replacement:=""
        .Replace What:="~**~*", Replacement:=""
        .Rows.AutoFit
    End With
End Sub
[/vba]
пытался поставить пробел

Куда? Зачем?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНууу, тут не я один отметился.
По поводу выравнивания - на первый взгляд - другой вопрос и нужно создавать новую тему, но, как оказалось, не совсем так и все немного усложняется
Вот такой вариант
[vba]
Код
Sub tt()
    With Columns("B:B")
        .Replace What:=Chr(10) & "~**~*", Replacement:=""
        .Replace What:="~**~*", Replacement:=""
        .Rows.AutoFit
    End With
End Sub
[/vba]
пытался поставить пробел

Куда? Зачем?

Автор - _Boroda_
Дата добавления - 22.06.2016 в 09:58
den45444 Дата: Среда, 22.06.2016, 16:00 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Благодарю за помощь.
 
Ответить
Сообщение_Boroda_, Благодарю за помощь.

Автор - den45444
Дата добавления - 22.06.2016 в 16:00
Dimchec Дата: Среда, 05.04.2023, 01:07 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 20% ±

2016
Здраствуйте, |подскажите пожалуйста что нужно изменить в данном коде чтоб
На оборот текст между * * остался а все остальное уда лилось

[vba][code]

Sub uuu()
With CreateObject("VBScript.RegExp")
.Pattern = "\*.+\*"
For Each c In Range("B4:B9")
c.Value = .Replace(c.Value, "")
Next
End With
End Sub[code][/vba]


DIMCHEC
 
Ответить
СообщениеЗдраствуйте, |подскажите пожалуйста что нужно изменить в данном коде чтоб
На оборот текст между * * остался а все остальное уда лилось

[vba][code]

Sub uuu()
With CreateObject("VBScript.RegExp")
.Pattern = "\*.+\*"
For Each c In Range("B4:B9")
c.Value = .Replace(c.Value, "")
Next
End With
End Sub[code][/vba]

Автор - Dimchec
Дата добавления - 05.04.2023 в 01:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удалить часть текста внутри ячейки (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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