Как только значение введено в ячейку, любая формула в этой ячейке будет перезаписана. Вы можете использовать подпрограмму VBA для восстановления формулы. Ваши требования должны включать логику того, что имеет приоритет, то есть, в каком случае следует использовать формулу и в каком случае введенное вручную число "выигрывает".
Следующий код работает в этих помещениях:
- либо ячейка A2 или A3 меняются
- Оба A2 и A3 должны иметь значения
Таким образом, когда редактируются либо A2, либо A3 И обе ячейки содержат значение, макрос записывает = A2+A3 в ячейку A4. Если любое из значений в A2 или A3 является текстовым, макрос все равно будет запущен, и в Excel отобразится сообщение об ошибке при добавлении текста с номерами. Используйте Sum(), чтобы избежать сообщения об ошибке.
Если ячейка A4 затем редактируется, а формула перезаписывается, это значение будет отображаться до тех пор, пока A2 или A3 не будут отредактированы снова.
Если это не соответствует вашим требованиям, пожалуйста, изложите их более подробно.
Код поступает в модуль Sheet (щелкните правой кнопкой мыши вкладку листа, нажмите "View code", вставьте код в большую область кода).
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("A2:A3")) Is Nothing Then
If WorksheetFunction.Count(Range("A2:A3")) = 2 Then
Range("A4").Formula = "=A2+A3"
End If
End If
End Sub