На листе может быть только одно событие WorkSheet_Change
, поэтому вы получаете ошибку Обнаружено неоднозначное имя .
Если ваш код слишком длинный, попробуйте создать свои действия в Sub
, а затем вызывать эти подпрограммы с учетом определенных критериев. Таким образом, вы можете ограничить свой код WorkSheet_Change
до , строго оценить Target
.
В вашем WorkSheet_Change
коде вы можете иметь что-то вроде:
If Target.Value = “x” Then
Call SubX
ElseIF Target.Value = “y” Then
Call SubY
ElseIF Target.Value = “z” Then
Call SubZ
End IF
SubX ()
‘Do Something
End Sub
SubY ()
‘Do Something
End Sub
SubZ ()
‘Do Something
End Sub
Примечание:
Вам нужно будет отключить события, прежде чем вносить какие-либо физические изменения в свой лист, иначе вы окажетесь в бесконечном цикле и остановите свой экземпляр Excel. Используйте метод ниже, чтобы избежать этой проблемы:
Application.EnableEvents = False
‘Physical changes to worksheet
Application.EnableEvents = True