2016-01-03 3 views
0

Когда я использую этот макрос, чтобы очистить B12 когда я изменить B11, я получаю ошибку компиляции:неоднозначное имя обнаружено: Worksheet_Change

ambiguous name detected: Worksheet_Change

Можете ли вы мне помочь?

Код:

Private Sub Worksheet_Change(ByVal Target As Range) 
     If Target.Address = "B11" Then 
     Range("B12").ClearContents 
     End If 
End Sub 
+1

Возможно, вы реализовали 'Worksheet_Change' дважды в модуле. Может существовать только одна функция обработки событий для одного объекта («Рабочий лист») –

+0

Я считаю, что @John_West прав. После этого вам также может потребоваться присвоить адрес 'If Target.Address =" $ B $ 11 "Then' –

ответ

0

Попробуйте это:

Private Sub Worksheet_Change(ByVal Target As Range) 

     If Not Application.Intersect(Target, Range("B11")) Is Nothing Then 
     Application.EnableEvents = False 
      Range("B12").ClearContents 
     Application.EnableEvents = True 
     End If 

End Sub 
+0

по-прежнему компилировать ошибку. B12 - выпадающий список, возможно, мне нужен другой код? – gdf

+0

@gdf, убедитесь, что нет другого подфункции или функции с этим именем «Worksheet_Change» – Fadi

+1

Возможно, эта справочная ссылка: [обнаружено неоднозначное имя] (https://msdn.microsoft.com/en-us/library/office/gg278734 .aspx). – Fadi