ttp8, Если Вас тянет работать с объединенными ячейками, и при этом есть возможность обойтись без них, то лучше с ними не связываться.
Вот Ваш пример иллюстрирует одну из причин:
Код |
---|
If Target.Cells.Count > 1 Then Exit Sub |
При внесении текста в "B1" Target.Cells.Count = 1, а при Delete Target.Cells.Count = 3
Кроме того, если Вы в Worksheet_Change пишете код, который изменяет еще и другие ячейки, то желательно перед изменением "A1", например, написать такую строку:
Код |
---|
Application.EnableEvents = False 'отключает события во избежание не нужных срабатываний |
По окончании изменений:
Код |
---|
Application.EnableEvents = True 'а то потом на событие не реагирует |
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lReply As Long
Application.EnableEvents = False
Select Case Target.Address
Case "$B$1": If Len(Target.Cells.Value) > 0 Then Worksheets("Main").Cells(1, 1).Value = "No"
Case "$B$2": If Len(Target.Cells.Value) > 0 Then Worksheets("Main").Cells(2, 1).Value = "No"
Case "$B$1:$D$1": If Len(Target.Cells(1).Value) = 0 Then Worksheets("Main").Cells(1, 1).Value = "Yes"
Case "$B$2:$D$2": If Len(Target.Cells(1).Value) = 0 Then Worksheets("Main").Cells(2, 1).Value = "Yes"
End Select
Application.EnableEvents = True
End Sub
|