Вот очень маленький пример того, как это сделать.
Сначала зайдите в свой VBE и дважды щелкните по рабочему листу, где должно произойти это событие «Изменение».Мы хотим поместить этот код конкретно в этот лист.
Далее вы можете вставить это в:
Private Sub Worksheet_Change(ByVal Target As Range)
'Test to see if the thing that changed was in range E:E
'Target variable will hold the range that experienced the change
If Not Intersect(Range("E:E"), Target) Is Nothing Then
'Declare a variable to hold a single cell that was changed
Dim changedCell As Range
'Loop through all the cells that were changed in column E
'generally just one is changed, but it could be multiple
For Each changedCell In Intersect(Range("E:E"), Target).Cells
'Now we will increment the number that is in column F next to the cell that changed
changedCell.Offset(0, 1).Value = changedCell.Offset(0, 1).Value + 1
Next changedCell
End If
End Sub
Эта подпрограмма является специальной.Он называется Worksheet_Change()
, и у него есть один параметр с именем «Цель».Это будет срабатывать автоматически каждый раз, когда что-либо меняется на этой вкладке / листе.Target
будет содержать диапазон ячеек, которые претерпели изменения.
Этот код проверяет, находился ли диапазон, который был изменен, в столбце E
и, если это так, он проходит через каждую измененную ячейку (вы можете изменить несколько ячеек одновременно с помощью копирования / вставки) ион просто увеличивает счетчик в столбце F рядом с каждой ячейкой.