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

Вход

Регистрация

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

 

= Мир MS Excel/удаление из ячейки фразы и нескольких символов слева от неё - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » удаление из ячейки фразы и нескольких символов слева от неё (Макросы/Sub)
удаление из ячейки фразы и нескольких символов слева от неё
emkub Дата: Понедельник, 15.08.2016, 01:53 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Вновь прошу вашей помощи. Вопрос вроде плёвый. Формулой его решил, а записать макрос не получается.
Суть: из ячейки с текстом нужно удалить фразу "ххх -Показать номер-", где ххх - три меняющихся цифры. Макрос должен выполняться по всему столбцу "i". Количество строк заранее не известно.
Файл прикрепляю.
К сообщению приложен файл: 5455058.xlsm(15Kb)
 
Ответить
СообщениеЗдравствуйте.
Вновь прошу вашей помощи. Вопрос вроде плёвый. Формулой его решил, а записать макрос не получается.
Суть: из ячейки с текстом нужно удалить фразу "ххх -Показать номер-", где ххх - три меняющихся цифры. Макрос должен выполняться по всему столбцу "i". Количество строк заранее не известно.
Файл прикрепляю.

Автор - emkub
Дата добавления - 15.08.2016 в 01:53
krosav4ig Дата: Понедельник, 15.08.2016, 04:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1346
Репутация: 547 ±
Замечаний: 0% ±

Excel 2007, 2013
как-то так[vba]
Код
Sub dd()
    Dim arr As Variant, i&
    With [offset(I1,,,counta(I:I))]
        On Error GoTo er
        arr = .Value
        If Not IsArray(arr) Then
            ReDim arr(1 To 1, 1 To 1)
            arr(1, 1) = .Value
        End If
        With CreateObject("vbscript.regexp")
            .Pattern = "\d+ -Показать номер- "
            For i = 1 To UBound(arr)
                arr(i, 1) = .Replace(arr(i, 1), "")
            Next
        End With
        .Value = arr
    End With
er:
End Sub
[/vba]
К сообщению приложен файл: 3755398.xlsm(17Kb)


(_)Õvõ(_)
 
Ответить
Сообщениекак-то так[vba]
Код
Sub dd()
    Dim arr As Variant, i&
    With [offset(I1,,,counta(I:I))]
        On Error GoTo er
        arr = .Value
        If Not IsArray(arr) Then
            ReDim arr(1 To 1, 1 To 1)
            arr(1, 1) = .Value
        End If
        With CreateObject("vbscript.regexp")
            .Pattern = "\d+ -Показать номер- "
            For i = 1 To UBound(arr)
                arr(i, 1) = .Replace(arr(i, 1), "")
            Next
        End With
        .Value = arr
    End With
er:
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 15.08.2016 в 04:19
nilem Дата: Понедельник, 15.08.2016, 07:25 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 1057
Репутация: 400 ±
Замечаний: 0% ±

Excel 2013
или
[vba]
Код
Sub Макрос2()
With Range("I1", Cells(Rows.Count, "I").End(xlUp))
    .Replace "??? -Показать номер-", "", xlPart
'    .Replace Chr(10), ""
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеили
[vba]
Код
Sub Макрос2()
With Range("I1", Cells(Rows.Count, "I").End(xlUp))
    .Replace "??? -Показать номер-", "", xlPart
'    .Replace Chr(10), ""
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 15.08.2016 в 07:25
sv2014 Дата: Понедельник, 15.08.2016, 11:41 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 37 ±
Замечаний: 0% ±

Excel 2013
emkub, добрый день,вариант функции uuu и соответствующий ей макрос,кнопки use и повтор

[vba]
Код
Function uuu$(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "\d+ \-Показать номер\-"
     uuu = .Replace(t, "")
   End With
End Function
[/vba]

[vba]
Код
Sub use()
   Dim z, j&: z = Range("I1:I" & Range("I" & Rows.Count).End(xlUp).Row).Value
     With CreateObject("vbscript.regexp"): .Pattern = "\d+ \-Показать номер\- "
       For j = 1 To UBound(z): z(j, 1) = .Replace(z(j, 1), ""): z(j, 1) = Replace(z(j, 1), Chr(10), ""): Next
          Range("I1").Resize(UBound(z), 1).Value = z
    End With
End Sub
[/vba]
К сообщению приложен файл: example_15_08_2.xls(44Kb)


Сообщение отредактировал sv2014 - Понедельник, 15.08.2016, 11:43
 
Ответить
Сообщениеemkub, добрый день,вариант функции uuu и соответствующий ей макрос,кнопки use и повтор

[vba]
Код
Function uuu$(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "\d+ \-Показать номер\-"
     uuu = .Replace(t, "")
   End With
End Function
[/vba]

[vba]
Код
Sub use()
   Dim z, j&: z = Range("I1:I" & Range("I" & Rows.Count).End(xlUp).Row).Value
     With CreateObject("vbscript.regexp"): .Pattern = "\d+ \-Показать номер\- "
       For j = 1 To UBound(z): z(j, 1) = .Replace(z(j, 1), ""): z(j, 1) = Replace(z(j, 1), Chr(10), ""): Next
          Range("I1").Resize(UBound(z), 1).Value = z
    End With
End Sub
[/vba]

Автор - sv2014
Дата добавления - 15.08.2016 в 11:41
emkub Дата: Понедельник, 15.08.2016, 22:46 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Ого, сколько вариантов! :)
Пока проверил вариант nilemа. Возможно на нём и остановлюсь. Но в запас возьму ВСЕ!
Всем отозвавшимся огромнейшее спасибо за помощь!!! Вы делаете этот мир лучше :)
 
Ответить
СообщениеОго, сколько вариантов! :)
Пока проверил вариант nilemа. Возможно на нём и остановлюсь. Но в запас возьму ВСЕ!
Всем отозвавшимся огромнейшее спасибо за помощь!!! Вы делаете этот мир лучше :)

Автор - emkub
Дата добавления - 15.08.2016 в 22:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » удаление из ячейки фразы и нескольких символов слева от неё (Макросы/Sub)
Страница 1 из 11
Поиск:

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