Я не уверен, что вы поняли, как именно использовать функцию, даже если я могу ошибаться ... Чтобы работать так, как вы, sh, вы должны действовать следующим образом:
Создайте событие Worksheet_Change
для листа, на котором вы собираетесь работать. Он будет вызывать только указанную выше функцию.
Private Sub Worksheet_Change(ByVal Target As Range)
Starting_Price Target
End Sub
Если вы не знаете, как создать такое событие, не стесняйтесь спрашивать;
Затем вы должны поместить указанный выше код в тот же модуль листа . Точно так же, как он или немного изменен для использования только VBA (без RegExp):
Private Sub Starting_Price(ByVal Target As Range)
On Error GoTo err_handler
Application.EnableEvents = False
If Target = Empty Then GoTo exit_handler
If Not Intersect(Target, Columns("P")) Is Nothing Then
With Target
If Target.HasFormula Then
.Formula = .Formula & "+1"
End If
End With
End If
exit_handler:
Application.EnableEvents = True
Exit Sub
err_handler:
MsgBox Err.Number & ": " & Err.Description
Resume exit_handler
End Sub
Будьте внимательны, чтобы ввести (только в столбце P: P) ваша дробь, как формула: = 5/2
;
Убедитесь, что ваша книга Excel имеет тип .xlsm.