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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет замен, совершенных функцией Replace - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет замен, совершенных функцией Replace (Макросы/Sub)
Подсчет замен, совершенных функцией Replace
Raskat Дата: Пятница, 21.12.2018, 12:26 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго дня!
Есть такой кусок кода, производящий замену символа в столбце:
[vba]
Код

Columns(c).Select
Selection.Replace What:="[", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="]", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="<", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:=">", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="~*", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
[/vba]

Нужно что бы количество произведенных замен сохранялось. А еще лучше - что бы была возможность со строками, в которых произведена замена совершить какую-то операцию - например, залить цветом.

Попробовал переписать в таком формате, но так не работает. Почему?

[vba]
Код

For i = r To 2 Step -1 'Перебираем строчки в столбце - от последней до второй, кроме верхней строки
If Cells(i, c) Like "*[]<>*" Then 'с - номер выделенного столбца
        Cells(i, c).Value Replace(Cells(i, c).Value, "*[]<>~*", "")
        dt2 = dt2 + 1 'Счетчик замен
End If
Next i
[/vba]
К сообщению приложен файл: 111.xlsx(8.0 Kb)
 
Ответить
СообщениеДоброго дня!
Есть такой кусок кода, производящий замену символа в столбце:
[vba]
Код

Columns(c).Select
Selection.Replace What:="[", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="]", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="<", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:=">", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Selection.Replace What:="~*", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
[/vba]

Нужно что бы количество произведенных замен сохранялось. А еще лучше - что бы была возможность со строками, в которых произведена замена совершить какую-то операцию - например, залить цветом.

Попробовал переписать в таком формате, но так не работает. Почему?

[vba]
Код

For i = r To 2 Step -1 'Перебираем строчки в столбце - от последней до второй, кроме верхней строки
If Cells(i, c) Like "*[]<>*" Then 'с - номер выделенного столбца
        Cells(i, c).Value Replace(Cells(i, c).Value, "*[]<>~*", "")
        dt2 = dt2 + 1 'Счетчик замен
End If
Next i
[/vba]

Автор - Raskat
Дата добавления - 21.12.2018 в 12:26
sboy Дата: Пятница, 21.12.2018, 12:56 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2309
Репутация: 658 ±
Замечаний: 0% ±

Excel 2010
но так не работает. Почему?

Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений
[vba]
Код
Sub rep_()
c = 1
r = Cells(Rows.Count, c).End(xlUp).Row
    With CreateObject("VBScript.Regexp")
        .Global = True
        .Pattern = "[\[\]<>*]"
            For i = r To 2 Step -1 'Перебираем строчки в столбце - от последней до второй, кроме верхней строки
                If .test(Cells(i, c).Value) Then 'с - номер выделенного столбца
                    Cells(i, c).Value = .Replace(Cells(i, c).Value, "")
                    Cells(i, c).Interior.Color = vbYellow
                    dt2 = dt2 + 1 'Счетчик замен
                End If
            Next i
    End With
    MsgBox "замены сделаны в " & dt2 & " ячейках"
End Sub
[/vba]
К сообщению приложен файл: 111-5-.xlsm(13.2 Kb)
 
Ответить
Сообщение
но так не работает. Почему?

Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений
[vba]
Код
Sub rep_()
c = 1
r = Cells(Rows.Count, c).End(xlUp).Row
    With CreateObject("VBScript.Regexp")
        .Global = True
        .Pattern = "[\[\]<>*]"
            For i = r To 2 Step -1 'Перебираем строчки в столбце - от последней до второй, кроме верхней строки
                If .test(Cells(i, c).Value) Then 'с - номер выделенного столбца
                    Cells(i, c).Value = .Replace(Cells(i, c).Value, "")
                    Cells(i, c).Interior.Color = vbYellow
                    dt2 = dt2 + 1 'Счетчик замен
                End If
            Next i
    End With
    MsgBox "замены сделаны в " & dt2 & " ячейках"
End Sub
[/vba]

Автор - sboy
Дата добавления - 21.12.2018 в 12:56
Raskat Дата: Пятница, 21.12.2018, 13:56 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений

Где бы ее найти толковую? Везде какие то куски информации, нормального описания с полной раскладкой вариантов не нашел нигде. Может посоветуете толковые ресурсы?

А можно еще как-то включить в паттерн сочетания, например http:// ?
 
Ответить
Сообщение
Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений

Где бы ее найти толковую? Везде какие то куски информации, нормального описания с полной раскладкой вариантов не нашел нигде. Может посоветуете толковые ресурсы?

А можно еще как-то включить в паттерн сочетания, например http:// ?

Автор - Raskat
Дата добавления - 21.12.2018 в 13:56
StoTisteg Дата: Пятница, 21.12.2018, 14:15 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1148
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Raskat, кнопка F1 при правильном использовании вполне себе толковый ресурс.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеRaskat, кнопка F1 при правильном использовании вполне себе толковый ресурс.

Автор - StoTisteg
Дата добавления - 21.12.2018 в 14:15
sboy Дата: Пятница, 21.12.2018, 15:13 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2309
Репутация: 658 ±
Замечаний: 0% ±

Excel 2010
Где бы ее найти толковую?

Напишите мне письмо (почта в профиле), дам ссылку на скачку того, что есть у меня
 
Ответить
Сообщение
Где бы ее найти толковую?

Напишите мне письмо (почта в профиле), дам ссылку на скачку того, что есть у меня

Автор - sboy
Дата добавления - 21.12.2018 в 15:13
sboy Дата: Пятница, 21.12.2018, 15:14 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2309
Репутация: 658 ±
Замечаний: 0% ±

Excel 2010
А можно еще как-то включить в паттерн сочетания, например http://

можно, но лучше приложите пример, что есть, что надо
 
Ответить
Сообщение
А можно еще как-то включить в паттерн сочетания, например http://

можно, но лучше приложите пример, что есть, что надо

Автор - sboy
Дата добавления - 21.12.2018 в 15:14
_Boroda_ Дата: Пятница, 21.12.2018, 15:20 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13925
Репутация: 5635 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
sboy,
Напишите мне письмо

А как бы вот это все так сделать, чтобы и волки были бы сыты, и овцы целки и Правила форума не нарушить?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеsboy,
Напишите мне письмо

А как бы вот это все так сделать, чтобы и волки были бы сыты, и овцы целки и Правила форума не нарушить?

Автор - _Boroda_
Дата добавления - 21.12.2018 в 15:20
sboy Дата: Пятница, 21.12.2018, 16:01 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2309
Репутация: 658 ±
Замечаний: 0% ±

Excel 2010
А как бы вот это все так сделать

хм, вроде это к вопросу и не относится, но с другой стороны в Правилах четко сказано...
Выложить ссылку тут? вроде тоже Правила нарушу.
 
Ответить
Сообщение
А как бы вот это все так сделать

хм, вроде это к вопросу и не относится, но с другой стороны в Правилах четко сказано...
Выложить ссылку тут? вроде тоже Правила нарушу.

Автор - sboy
Дата добавления - 21.12.2018 в 16:01
_Boroda_ Дата: Пятница, 21.12.2018, 16:19 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13925
Репутация: 5635 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Выложить ссылку тут? вроде тоже Правила нарушу.

Чем? Какой пункт нарушается?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Выложить ссылку тут? вроде тоже Правила нарушу.

Чем? Какой пункт нарушается?

Автор - _Boroda_
Дата добавления - 21.12.2018 в 16:19
sboy Дата: Пятница, 21.12.2018, 16:41 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2309
Репутация: 658 ±
Замечаний: 0% ±

Excel 2010
5k?
С вопросом темы никак не связано
 
Ответить
Сообщение5k?
С вопросом темы никак не связано

Автор - sboy
Дата добавления - 21.12.2018 в 16:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет замен, совершенных функцией Replace (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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