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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление символов средствами VBA (Функция ПРАВСИМВ) - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Удаление символов средствами VBA (Функция ПРАВСИМВ)
werty456 Дата: Вторник, 27.03.2018, 10:35 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток уважаемые форумчане!!!
Так как с VBA не силен прошу Вашей помощи:
Есть набор значений в колонке "D"
в них вносятся 10-значения и 11-значения, из этих значений нужно удалить 4 первых символа.
Например введено: 2052147852, а должно остаться - 147852.
первых 4 символа динамичные, меняются при каждом вводе
Прошу Вашей помощи.
Заранее благодарен))))
К сообщению приложен файл: 123456789.xlsx (8.6 Kb)
 
Ответить
СообщениеДоброго времени суток уважаемые форумчане!!!
Так как с VBA не силен прошу Вашей помощи:
Есть набор значений в колонке "D"
в них вносятся 10-значения и 11-значения, из этих значений нужно удалить 4 первых символа.
Например введено: 2052147852, а должно остаться - 147852.
первых 4 символа динамичные, меняются при каждом вводе
Прошу Вашей помощи.
Заранее благодарен))))

Автор - werty456
Дата добавления - 27.03.2018 в 10:35
SLAVICK Дата: Вторник, 27.03.2018, 10:51 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Например введено: 2052147852, а должно остаться - 147852

Формула:
Код
=ПСТР(D1;5;ДЛСТР(D1))

тот же принцип и в макросе:
[vba]
Код
Sub d()
    For Each cell In [d1:d4]
    cell.Offset(, 2) = Mid(cell, 5, Len(cell))
    Next
End Sub
[/vba]
К сообщению приложен файл: 123456789.xlsm (16.9 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Например введено: 2052147852, а должно остаться - 147852

Формула:
Код
=ПСТР(D1;5;ДЛСТР(D1))

тот же принцип и в макросе:
[vba]
Код
Sub d()
    For Each cell In [d1:d4]
    cell.Offset(, 2) = Mid(cell, 5, Len(cell))
    Next
End Sub
[/vba]

Автор - SLAVICK
Дата добавления - 27.03.2018 в 10:51
sboy Дата: Вторник, 27.03.2018, 10:53 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
или макрос на ручной ввод
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 4 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        Target.Value = Val(Right(Target.Value, Len(Target.Value) - 4))
        Application.EnableEvents = True
End Sub
[/vba]
К сообщению приложен файл: 123456789-1-.xlsm (13.7 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщениеили макрос на ручной ввод
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 4 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        Target.Value = Val(Right(Target.Value, Len(Target.Value) - 4))
        Application.EnableEvents = True
End Sub
[/vba]

Автор - sboy
Дата добавления - 27.03.2018 в 10:53
китин Дата: Вторник, 27.03.2018, 11:19 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
и мои 5 копеек
[vba]
Код
Sub uuu()
Dim dd$, uu&
    uu = Cells(Rows.Count, 4).End(xlUp).Row
     For i = 1 To uu
        dd = Replace(Cells(i, 4), Left(Cells(i, 4), 4), "", 1, 1)
        Cells(i, 4) = dd
     Next
End Sub
[/vba]
кнопочку нажмите
[p.s.]первый опыт с Replace :'(
критика приветствуется
К сообщению приложен файл: werty456.xlsm (15.7 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Вторник, 27.03.2018, 11:19
 
Ответить
Сообщениеи мои 5 копеек
[vba]
Код
Sub uuu()
Dim dd$, uu&
    uu = Cells(Rows.Count, 4).End(xlUp).Row
     For i = 1 To uu
        dd = Replace(Cells(i, 4), Left(Cells(i, 4), 4), "", 1, 1)
        Cells(i, 4) = dd
     Next
End Sub
[/vba]
кнопочку нажмите
[p.s.]первый опыт с Replace :'(
критика приветствуется

Автор - китин
Дата добавления - 27.03.2018 в 11:19
werty456 Дата: Вторник, 27.03.2018, 11:40 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
SLAVICK, sboy, китин, Спасибо большое за предоставленные решения. и быстрые ответы
 
Ответить
СообщениеSLAVICK, sboy, китин, Спасибо большое за предоставленные решения. и быстрые ответы

Автор - werty456
Дата добавления - 27.03.2018 в 11:40
sv2014 Дата: Среда, 28.03.2018, 01:09 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
werty456, вариант UDF

[vba]
Код
Function aaa$(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "(?:\d{4})(\d+)"
       aaa = .Replace(t, "$1")
  End With
End Function
[/vba]
К сообщению приложен файл: example_29_03_2.xls (28.5 Kb)


Сообщение отредактировал sv2014 - Среда, 28.03.2018, 01:13
 
Ответить
Сообщениеwerty456, вариант UDF

[vba]
Код
Function aaa$(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "(?:\d{4})(\d+)"
       aaa = .Replace(t, "$1")
  End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 28.03.2018 в 01:09
  • Страница 1 из 1
  • 1
Поиск:

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