Прошу помочь с решением, в общем-то простой с виду задачки... Есть диапазон ячеек. В каждой ячейке содержится разная информация. Но в некоторых ячейках содержится вот такой похожий текст: <b>20 Pieces</b> и <b>150 Pieces</b>. Т.е. то, что позволяет выделить эти ячейки из всего массива - обязательное наличие в тексте слова "Pieces" В итоге необходимо получить в этих ячейках текст, который будет начинаться на <bb>20 и <bb>150 (как вариант, <bb>20 Pieces</b> и <bb>150 Pieces</b>), т.е. заменить начало текста с <b> на <bb>. Единственное, что я смог, изваял вот такой вот код: [vba]
Код
Sub bbb()
With Worksheets("1").Range("A1:A50000") Set b = .Find("<b>", LookIn:=xlValues) Set c = .Find("Pieces", LookIn:=xlValues) If Not b Is Nothing And Not c Is Nothing Then firstResult = b.Address Do b.Value = "<bb>" Set b = .FindNext(b) If b Is Nothing Then Exit Do Loop While b.Address <> firstResult End If End With
End Sub
[/vba]
Но в итоге текст искомых ячеек становится только "<bb>" и то как-то криво... Во вложении пример. Прошу помочь всем, кто знает, как справиться с этой трудностью. Заранее спасибо.
Всем доброго времени суток!
Прошу помочь с решением, в общем-то простой с виду задачки... Есть диапазон ячеек. В каждой ячейке содержится разная информация. Но в некоторых ячейках содержится вот такой похожий текст: <b>20 Pieces</b> и <b>150 Pieces</b>. Т.е. то, что позволяет выделить эти ячейки из всего массива - обязательное наличие в тексте слова "Pieces" В итоге необходимо получить в этих ячейках текст, который будет начинаться на <bb>20 и <bb>150 (как вариант, <bb>20 Pieces</b> и <bb>150 Pieces</b>), т.е. заменить начало текста с <b> на <bb>. Единственное, что я смог, изваял вот такой вот код: [vba]
Код
Sub bbb()
With Worksheets("1").Range("A1:A50000") Set b = .Find("<b>", LookIn:=xlValues) Set c = .Find("Pieces", LookIn:=xlValues) If Not b Is Nothing And Not c Is Nothing Then firstResult = b.Address Do b.Value = "<bb>" Set b = .FindNext(b) If b Is Nothing Then Exit Do Loop While b.Address <> firstResult End If End With
End Sub
[/vba]
Но в итоге текст искомых ячеек становится только "<bb>" и то как-то криво... Во вложении пример. Прошу помочь всем, кто знает, как справиться с этой трудностью. Заранее спасибо.master-dd
Sub tt() n_ = Cells(Rows.Count, 1).End(3).Row - 1 ar = Cells(2, 1).Resize(n_) For i = 1 To n_ If InStr(ar(i, 1), "Pieces") Then ar(i, 1) = Replace(ar(i, 1), "<b>", "<bb>") End If Next i Cells(2, 2).Resize(n_) = ar'если в то же место вставлять, то Cells(2, 1) End Sub
[/vba]
Так нужно? [vba]
Код
Sub tt() n_ = Cells(Rows.Count, 1).End(3).Row - 1 ar = Cells(2, 1).Resize(n_) For i = 1 To n_ If InStr(ar(i, 1), "Pieces") Then ar(i, 1) = Replace(ar(i, 1), "<b>", "<bb>") End If Next i Cells(2, 2).Resize(n_) = ar'если в то же место вставлять, то Cells(2, 1) End Sub