Я не уверен, правильно ли я понял, но я думаю, что вы хотите вставить нерабочую формулу в ячейку, которую вы выбрали, основываясь на значении этой ячейки. Если это так, то приведенная ниже формула подойдет вам:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myFormula As String
If IsNumeric(Selection.Value) = True And Selection.Value <> "" Then
myFormula = Selection.Value & " * 3 + 1"
Selection.Value = myFormula
End If
End Sub
Поскольку код находится в событии Worksheet_SelectionChange
, он будет работать каждый раз, когда вы выбираете любую ячейку. Я добавил условие If...Then
, чтобы не переформулировать уже сформулированную или пустую ячейку.
Поскольку формула работает для выбранной ячейки, вы должны выйти из этой ячейки и войти снова, чтобы заставить ее работать для вашей числовой ячейки.
Но, тем не менее, если вам строго не нужна формула, созданная в ячейке себя, но в другой ячейке; можно также использовать формульное решение.
Если ваш номер A1
, напишите приведенную ниже формулу в B1
и скопируйте:
=ADDRESS(ROW(B1),COLUMN(B1)-1,1) & "* 3 + 1"