1

Как я могу сделать так, чтобы, если я введу что-либо в диапазон ячеек B3:E3, значение будет тем, что я введу, плюс значение вышеупомянутой ячейки.

пример: если я введу 20 в ячейку C3, после нажатия кнопки возврата или щелчка мышью значение будет обновлено до 40.

Пока я знаю, что мне нужно что-то похожее на это:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("B3:E3").Value = Range("B2:E2").Value

End Sub

И я знаю, что мне нужно каким-то образом получить доступ к значению смещения, но VBA - не моя сильная сторона, и я не могу правильно сформулировать этот вопрос.

1 ответ1

1

Вам нужно будет добавить к этому нагрузку проверки ошибок, но вот голые кости:

Private Sub Worksheet_Change(ByVal Target As Range)

  ' If we're not in the range of interest
  ' do nothing.
  If Intersect(Target, Me.Range("B2:E2")) Is Nothing Then
    Exit Sub
  End If
  ' We don't want this event to fire itself!
  Application.EnableEvents = False
  ' Now add the row above (rowOffset = -1) to the value.
  Target.Value = Target.Value + Target.Offset(-1, 0).Value
  ' Don't forget to re-enable events, otherwise there'll
  ' be no more VBA events fired.
  Application.EnableEvents = True

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .