Сопоставьте значение с диапазоном и запишите соответствующее значение динамически - PullRequest
0 голосов
/ 19 февраля 2019

Не очень хорошо в VBA, но вот код, который я исследовал, который просто не работает.Все, что я пытаюсь сделать, это сравнить значение в ячейке B1 с рядом значений в ячейках L3 до AE3.Если совпадение найдено, я хочу, чтобы число под соответствием в строке L4-AE4 было скопировано и вставлено как значение в строке непосредственно над совпадением.Это должно сделать это автоматически через событие изменения.Значение, записанное в первой строке, должно быть сохранено как значение, и когда значение в B1 изменяется, новое совпадение копируется в строку 1 и так далее.Все записанные значения в первой строке сохраняются.B1 изменяется, когда формула на другом листе изменяет значение и связывается с B1, поэтому результат формулы связывается.Вот моя попытка его кодировать.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    If Intersect(Target, Range("L3:AE3")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For i = 12 To 31 'Columns L3 to AE3
       If Cells(1, "B") = Cells(3, i) Then
       Cells(1, i) = Cells(4,
       Else
       End If
    Next i
    Application.EnableEvents = True
End Sub

1 Ответ

0 голосов
/ 20 февраля 2019

Ниже приведен код, который должен помочь вам начать работу.Он срабатывает каждый раз, когда выполняется расчет.

Private Sub Worksheet_Calculate()
Dim i As Long

Application.EnableEvents = False
For i = 12 To 31
    If Cells(3, i).Value = Cells(1, 1).Value Then Cells(1, i).Value = Cells(4, i).Value
Next i
Application.EnableEvents = True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...