Страницы: 1
RSS
макрос поиска строки и замены текста в нескольких столбцах
 
Помогите, пожалуйста. Массив большой, высота заранее неизвестна, расположение столбцов одинаковое.
В исходнике "Лист1" в столбце А нужно найти заявки из списка "Лист2" и заменить,
например, исходный текст на листе1 в столбцах D и E на текст определенный списком на листе2 в столбцах B и C.

Надеюсь, что понятно объяснила, что хочу. Заранее благодарю за помощь!
Изменено: beznika - 14.06.2021 05:25:42
 
А каким способом Вы хотите достичь желаемого результата, использованием формул или применением макроса?
 
Код
Sub ReplaceOrderData()
  Dim r&, rg As Range
  With Worksheets("Лист2")
    Worksheets("Лист1").Activate: r = 2
    Do While Not IsEmpty(.Cells(r, 1))
      Set rg = Columns(1).Find(.Cells(r, 1), _
      , xlValues, xlWhole, SearchFormat:=False)
      If Not rg Is Nothing Then
        rg.Offset(0, 3).Resize(1, 2) = .Cells(r, 2).Resize(1, 2).Value
      End If
      r = r + 1
    Loop
  End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо огромное, это чудо. Только еще помогите скорректировать, а то сама туплю...
Табличная часть в исходнике всегда начинается с 10 строки, столбца B, номер заявки находится в столбце K
Изменено: beznika - 14.06.2021 11:03:18
 
замените:
Код
Set rg = Columns(1)
на
Код
Set rg = Columns(11)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, спасибо,
извините, что сразу не совсем верно сформулировала задачу, но возможно ли еще чуток доработать?
сейчас на листах столбцы в одинаковой последовательности, и макрос подставляет в исходник значения двух столбцов с листа2.
я хотела на листе2 указывать только столбцы необходимые к замене и в исходнике они будут непоследовательны.
можно, например, при нахождении заявки в списке заменить в исходнике только значения столбцов N и Q, на значения столбцов B и C из списка?

Заранее благодарю!
Страницы: 1
Наверх