Excel и изменение значения между двумя выпадающими списками

У меня есть два выпадающих списка: один зависит от другого - это означает, что если я выберу конкретное значение из списка в A1, в A2 появится конкретный список. Это прекрасно работает. Однако, когда я изменяю значение в A1, A2 остается в ячейке, пока я не нажму на список - тогда мое значение в A2 изменится в зависимости от моего выбора.

Например, если в списке 1 есть ['Да', 'Нет'], а список - Да: [1,2,3] Нет: [4,5,6]. Сначала я выбираю "Да" для A1, а затем выбираю 2 для A2. Затем, если я выберем "Нет" для A1, "2" останется в A2, пока я на самом деле не нажму на A2, чтобы выбрать новое значение (4,5,6). Есть ли способ "очистить" A2, как только я изменил выбор A1?

Спасибо!

3 ответа

Поместите этот код на страницу кода для Worksheet:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = Range("A1").Address Then
 Range("A2").ClearContents
 End If
End Sub


поместите это в код VBA для своего рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Address = Range("A1").Address Then
 Dim dependentCell As Range
 Set dependentCell = Target.Offset(1, 0) 'Cell A2
 If dependentCell.Validation.Value = False Then dependentCell.Clear
 End If 
End Sub


Вы можете вставить код для обновления списка A2 в процедуре workheet_change для своего рабочего листа. Каждый раз, когда значение ячейки изменяется на этом листе, ваш код обновления будет работать.

licensed under cc by-sa 3.0 with attribution.