Я бы хотел в предисловии сказать, что я новичок в VBA, так что, надеюсь, это легко исправить. Я пытаюсь заставить следующий код VBA работать для нескольких ячеек с формулами. В результате в ячейке есть побочное значение, которое пользователь может перезаписать, а затем снова посмотреть, удаляют ли они свое значение. Я могу заставить одну ячейку работать так, как я хочу, но вторая (и третья, и четвертая и т. Д. c.) Не работают. Как я могу повторить эту же строку кода, чтобы эффект повторялся в нескольких ячейках с разными формулами?
Рабочая:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Address(False, False) = "F7" Then
If IsEmpty(.Value) Then
Application.EnableEvents = False
.Formula = "=IFERROR(INDEX(DATABASE!$D$2:$AG$3222,MATCH('Pricing Grid'!$B$11,DATABASE!$E$2:$E$3222,0),10),0)"
Application.EnableEvents = True
End If
End If
End With
End Sub
Моя попытка (верхняя часть работает, нижняя часть нет):
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Address(False, False) = "F7" Then
If IsEmpty(.Value) Then
Application.EnableEvents = False
.Formula = "=IFERROR(INDEX(DATABASE!$D$2:$AG$3222,MATCH('Pricing Grid'!$B$11,DATABASE!$E$2:$E$3222,0),10),0)"
Application.EnableEvents = True
End If
End If
End With
End Sub
Private Sub Worksheet_Change1(ByVal Target As Excel.Range)
With Target
If .Address(False, False) = "F8" Then
If IsEmpty(.Value) Then
Application.EnableEvents = False
.Formula = "=IFERROR(INDEX(DATABASE!$D$2:$AG$3222,MATCH('Pricing Grid'!$B$11,DATABASE!$E$2:$E$3222,0),9),0)"
Application.EnableEvents = True
End If
End If
End With
End Sub