Нужно что бы количество произведенных замен сохранялось. А еще лучше - что бы была возможность со строками, в которых произведена замена совершить какую-то операцию - например, залить цветом.
Попробовал переписать в таком формате, но так не работает. Почему?
[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]
Доброго дня! Есть такой кусок кода, производящий замену символа в столбце: [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
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
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
Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений
Где бы ее найти толковую? Везде какие то куски информации, нормального описания с полной раскладкой вариантов не нашел нигде. Может посоветуете толковые ресурсы?
А можно еще как-то включить в паттерн сочетания, например http:// ?
Like и Replace так не работают, читайте справку по функциям. То, как вы пытались сделать, решается с помощью регулярных выражений
Где бы ее найти толковую? Везде какие то куски информации, нормального описания с полной раскладкой вариантов не нашел нигде. Может посоветуете толковые ресурсы?
А можно еще как-то включить в паттерн сочетания, например http:// ?Raskat