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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2013, 08:58   #1
lioon
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 38
По умолчанию Протяжка нумерации в столбце с изменением цифр внутри ячейки

Здравствуйте,

Подскажите, как решить такую проблему с помощью VBA:
Есть список

979_2_2_008_002_КМ_01_00
979_2_2_008_002_КМ_01_00
979_2_2_008_002_КМ_03_00
979_2_2_008_002_КМ_03_00
979_2_2_008_002_КМ_05_00
979_2_2_008_002_КМ_05_00
979_2_2_008_002_КМ_05_00
979_2_2_008_002_КМ_05_00
979_2_2_008_002_КМ_09_00
979_2_2_008_002_КМ_09_00
979_2_2_008_002_КМ_09_00
и т.д.

Из него необходимо сделать список:
979_2_2_008_002_КМ_01_00
979_2_2_008_002_КМ_02_00
979_2_2_008_002_КМ_03_00
979_2_2_008_002_КМ_04_00
979_2_2_008_002_КМ_05_00
979_2_2_008_002_КМ_06_00
979_2_2_008_002_КМ_07_00
979_2_2_008_002_КМ_08_00
979_2_2_008_002_КМ_09_00
979_2_2_008_002_КМ_10_00
979_2_2_008_002_КМ_11_00

Если протяжкой делать, то он меняет последние цифры, но нужно именно 4-5 символ с конца.
При этом важно чтобы последние два символа не менялись, т.к. это версия документа.
lioon вне форума Ответить с цитированием
Старый 25.10.2013, 09:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Проверяйте:

Код:
Sub ЗаменаЧисел()
    On Error Resume Next
    Dim ra As Range: Set ra = Range(Range("a1"), Range("a" & Rows.Count).End(xlUp))
    Dim cell As Range, txt$, ind&
    For Each cell In ra.Cells
        ind& = ind& + 1: txt = cell.Value
        pos& = Len(txt) - 4        ' позиция заменяемого текста
        Mid(txt, pos&, 2) = Format(ind, "00")
        cell = txt
    Next cell
End Sub
Подразумевается, что исходные данные идут в один столбец, начиная с ячейки A1,
и всегда надо менять только 4 и 5 символы с конца,
и строк будет не больше 99
EducatedFool вне форума Ответить с цитированием
Старый 25.10.2013, 09:51   #3
lioon
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 38
По умолчанию

Супер!
Большое спасибо! Всё работает!
lioon вне форума Ответить с цитированием
Старый 25.10.2013, 09:55   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

А через Split() - Join() не быстрее было бы?
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как объединить ячейки во втором столбце при совпадении значений в первом столбце BorisD Microsoft Office Excel 13 08.09.2018 10:09
Как определить координаты ячейки внутри функции вызываемой как формула из ячейки? RISagitov Microsoft Office Excel 3 07.03.2013 19:45
Выделить ячейки в столбце Artem_85 Microsoft Office Excel 12 02.03.2012 22:34
Поочередный вывод значений в TextBox с изменением цвета ячейки marvi Microsoft Office Excel 3 08.05.2011 22:34
Как подсчитать сумму цифр в столбце и вывести их в Edit MaxiMkaUA БД в Delphi 12 30.05.2009 11:04