Sub ChangeToChange() 'Создание переменных рабочих книг, дабы можно _ было бы с ними работать Dim Tablet1 As Workbook Set Tablet1 = Workbooks("Alfa.xlsm") Dim Tablet2 As Workbook Set Tablet2 = Workbooks("Beta.xlsm") Dim OsnTablet As Workbook Set OsnTablet = Workbooks("Gamma.xls") Dim i As Integer i = 1 Dim stroka As String 'создаем переменные, чтобы контролировать прохождение кода 'активируем таблицу Альфа для получения значения первого столбца OsnTablet.Activate stroka = Trim(Worksheets("Лист1").Range("A2").Value) 'мы получили значение кода которое можно сравнивать с остальными 'Активируем таблицу Бэта для поиска Tablet1.Activate Dim dopstr As String 'Эта переменная поможет для хранения значения ячейки кода для Гамма For i = 1 To 200136 If (Cells(i, 2).Value = stroka) Or (Cells(i, 3).Value = stroka) Then 'сравнение переменной с ячейками второго и третьего столбцов _ в таблице Бэта If (Cells(i, 2).Value = stroka) Then dopstr = Cells(i, 1).Value Exit For End If If (Cells(i, 3).Value = stroka) Then dopstr = Cells(i, 1).Value Exit For End If End If Next i 'Активируем таблицу Гамма для нахождения нужного ряда и вставки значения из Альфа Tablet2.Activate For i = 1 To 45167 If (Cells(i, 1).Value = dopstr) Then Cells(i, 3).Value = Trim(Workbooks("Alfa").Worksheets("Лист1").Range("E2").Value)'индекс по столбцу должен меняться Exit For End If Next i End Sub