Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2017, 13:20   #11
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Размитое описание нужды.
0124 164 ABS какой ответ?
если же надо брать до пробела, тогда

Код:
Sub GetFirstElement()
    Dim cell As Range
    For Each cell In Selection
        cell.NumberFormat = "@"
        cell.Value = Split(cell)(0)
    Next
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.08.2017, 13:25   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от user2017 Посмотреть сообщение
единственное что известно так это то, что эти места начинаются после цифр
тю, так бы сразу и сказали. Это же проще простого:

Код:
Option Explicit

Sub ReplaceASV()
    Dim cell As Range, i&, stroka As String
    
    
    'отключаем обновление экрана, чтобы наши действия не мелькали
    Application.ScreenUpdating = False
    For Each cell In Selection

        stroka = cell.Value
        i = 0
        Do While i < Len(stroka)
            If IsNumeric(Mid(stroka, i + 1, 1)) = False Then Exit Do
            i = i + 1
        Loop
        stroka = Mid(stroka, 1, i)
        cell.NumberFormat = "@"
        cell.Value = stroka
    Next
    
    'возвращаем ранее отключенное обновление экрана
    Application.ScreenUpdating = True
    
End Sub
на тысячах записей работает, конечно, не очень быстро, но, имхо, минуту/другую и подождать можно
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2017, 13:54   #13
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
тю, так бы сразу и сказали. Это же проще простого:

Код:
Option Explicit

Sub ReplaceASV()
    Dim cell As Range, i&, stroka As String
    
    
    'отключаем обновление экрана, чтобы наши действия не мелькали
    Application.ScreenUpdating = False
    For Each cell In Selection

        stroka = cell.Value
        i = 0
        Do While i < Len(stroka)
            If IsNumeric(Mid(stroka, i + 1, 1)) = False Then Exit Do
            i = i + 1
        Loop
        stroka = Mid(stroka, 1, i)
        cell.NumberFormat = "@"
        cell.Value = stroka
    Next
    
    'возвращаем ранее отключенное обновление экрана
    Application.ScreenUpdating = True
    
End Sub
на тысячах записей работает, конечно, не очень быстро, но, имхо, минуту/другую и подождать можно
Порезало половину моих данных, можно усовершенствовать
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Sub ReplaceASV() Dim cell As Range For Each cell In Selection cell.NumberFormat = "@" cell.Value = Replace(cell.Value, "ABC-1", "") Next End Sub
этот код, добавив помимо "ABC-1" еще с десяток вариантов?
user2017 вне форума Ответить с цитированием
Старый 16.08.2017, 14:06   #14
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Тупо
Код:
cell.Value = Replace(cell.Value, "варик1", "")
cell.Value = Replace(cell.Value, "варик2", "")
cell.Value = Replace(cell.Value, "варик3", "")
.....
cell.Value = Replace(cell.Value, "варикN", "")
Не очень тупо, создать массив вариантов и циклом перебирать их и удалять
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.08.2017, 14:09   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от user2017 Посмотреть сообщение
Порезало половину моих данных, можно усовершенствовать
можно, конечно, усовершенствовать.
приведите пример (лучше выложите xls сюда, на форум) с данными, которые "порезались".

или используйте вариант с множественной заменой, предложенный Александром.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2017, 16:28   #16
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Всем спасибо, сделал в итоге 15 комбинаций, не стал возиться с массивом, пока что все работает)
user2017 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и заменить #ССЫЛКА! Tigranik Microsoft Office Excel 3 07.08.2013 21:39
Функция Readln в Delphi - как заменить Умагаджи Помощь студентам 2 06.04.2012 08:11
Правка Найти/Заменить лилу1986 Microsoft Office Excel 15 14.08.2010 20:54
найти и заменить smallfish Microsoft Office Word 2 15.05.2010 22:50
Найти и заменить Shouldercannon Общие вопросы Delphi 0 12.04.2010 01:33