Страницы: 1
RSS
Подстановка значений с другого листа. VBA
 
Добрый день!

Есть код, аналог ВПРа... Который на текущий лист, подставляет данные в ячейку с другого, при изменении/вводе значения соседней ячейки той же строки.
Код
Private Sub Worksheet_Change(ByVal Target As Range)

Dim iCell As Range
On Error Resume Next
If Not Intersect(Target, Intersect(Me.UsedRange, Me.Columns(1))) Is Nothing And Target.Count = 1 Then
    Set iCell = Worksheets("СТ-PL").Columns(1).Find(Target.Value)
    If Not iCell Is Nothing Then
        Target.Offset(i, 3).Value = iCell.Offset(i, 3).Value
        Target.Offset(i, 4).Value = iCell.Offset(i, 4).Value
    Else
        Target.Offset(i, 3).Value = Empty
        Target.Offset(i, 4).Value = Empty
    End If
End If


End Sub


Помогите переделать макрос в обычный, запускаемый с кнопки, но чтобы подстановка срабатывала для всего столбца (значений около 1800) в циклах пока не очень силен. Я думаю, что пример не нужен. Нужно лишь адаптировать макрос на выполнение по кнопке для всех строк таблицы, начиная со второй. Можно определять последнюю, можно и для 2000 строк сделать и всё.

С уважением.
Изменено: Frosted.one - 15.05.2019 15:56:41
 
Лучше покажите файл с примером как есть и как надо
 
Андрей_26, Файл во вложении. Интересующий код на Листе 2.
Изменено: Frosted.one - 15.05.2019 16:22:51
 
Если только три цифры то можно сделать так:
Код
Sub test()
    Application.ScreenUpdating = False
    
    With Sheets("Данные_Расход")
          For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
            If Cells(i, 1) = 1 Then
               Cells(i, 4) = "Один"
               Cells(i, 5) = "Это цифра 1"
            ElseIf Cells(i, 1) = 2 Then
                Cells(i, 4) = "Два"
                Cells(i, 5) = "Это цифра 2"
            Else: Cells(i, 1) = 3
                  Cells(i, 4) = "Три"
                  Cells(i, 5) = "Это цифра 3"
          End If
       Next
    End With
    Application.ScreenUpdating = True
End Sub

Если данных гораздо больше тогда напиши, нужно будет переделать.

Изменено: Андрей_26 - 15.05.2019 17:24:47
 
Андрей_26, Условий около 10. Я переделаю. Спасибо большое!
Страницы: 1
Наверх