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

Вход

Регистрация

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

 

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

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

Excel 2003
Добрый день, форумчане. Помогите с макросом. Требуется заменить в ячейке числовые данные (в первых скобках), прибавив к ним 6, т.е. имеем ячейки со строками:
i_punkt3 POSITION(1968:1972) CHAR NULLIF(i_punkt3=' '),
i_r1 POSITION(1973:1974) INTEGER EXTERNAL NULLIF(i_r1='00'),
Должно получиться:
i_punkt3 POSITION(1974:1978) CHAR NULLIF(i_punkt3=' '),
i_r1 POSITION(1979:1980) INTEGER EXTERNAL NULLIF(i_r1='00'),

Спасибо.
 
Ответить
СообщениеДобрый день, форумчане. Помогите с макросом. Требуется заменить в ячейке числовые данные (в первых скобках), прибавив к ним 6, т.е. имеем ячейки со строками:
i_punkt3 POSITION(1968:1972) CHAR NULLIF(i_punkt3=' '),
i_r1 POSITION(1973:1974) INTEGER EXTERNAL NULLIF(i_r1='00'),
Должно получиться:
i_punkt3 POSITION(1974:1978) CHAR NULLIF(i_punkt3=' '),
i_r1 POSITION(1979:1980) INTEGER EXTERNAL NULLIF(i_r1='00'),

Спасибо.

Автор - vc-pvm
Дата добавления - 09.01.2018 в 19:18
Pelena Дата: Вторник, 09.01.2018, 21:52 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12043
Репутация: 2651 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Код
=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("(";A1)+1;4;ПСТР(A1;ПОИСК("(";A1)+1;4)+6);ПОИСК(":";A1)+1;4;ПСТР(A1;ПОИСК(":";A1)+1;4)+6)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
Код
=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A1;ПОИСК("(";A1)+1;4;ПСТР(A1;ПОИСК("(";A1)+1;4)+6);ПОИСК(":";A1)+1;4;ПСТР(A1;ПОИСК(":";A1)+1;4)+6)

Автор - Pelena
Дата добавления - 09.01.2018 в 21:52
vc-pvm Дата: Вторник, 09.01.2018, 22:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Спасибо, всё получилось.
 
Ответить
СообщениеСпасибо, всё получилось.

Автор - vc-pvm
Дата добавления - 09.01.2018 в 22:59
Karataev Дата: Среда, 10.01.2018, 09:19 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1024
Репутация: 367 ±
Замечаний: 0% ±

Excel




Сообщение отредактировал Karataev - Среда, 10.01.2018, 09:21
 
Ответить
Сообщение

Автор - Karataev
Дата добавления - 10.01.2018 в 09:19
sboy Дата: Среда, 10.01.2018, 09:50 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1269
Репутация: 339 ±
Замечаний: 0% ±

Excel 2010
Тренирую RegExp
[vba]
Код
Function d_plus_6(str As String)
Dim arr_(0 To 1)
    With CreateObject("VBScript.RegExp")
        .Pattern = "(\d+):(\d+)"
        Set oMatch = .Execute(str)
            For d = 0 To 1
                arr_(d) = Val(oMatch(0).submatches.Item(d)) + 6
            Next d
        newd = Join(arr_, ":")
    d_plus_6 = .Replace(str, newd)
    End With
End Function
[/vba]
К сообщению приложен файл: d6.xlsm(16Kb)
 
Ответить
СообщениеТренирую RegExp
[vba]
Код
Function d_plus_6(str As String)
Dim arr_(0 To 1)
    With CreateObject("VBScript.RegExp")
        .Pattern = "(\d+):(\d+)"
        Set oMatch = .Execute(str)
            For d = 0 To 1
                arr_(d) = Val(oMatch(0).submatches.Item(d)) + 6
            Next d
        newd = Join(arr_, ":")
    d_plus_6 = .Replace(str, newd)
    End With
End Function
[/vba]

Автор - sboy
Дата добавления - 10.01.2018 в 09:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заменить в ячейках числовые значения (Макросы/Sub)
Страница 1 из 11
Поиск:

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