Как я могу очистить только предыдущие ячейки, выделенные из этого кода в Excel?

#excel

Вопрос:

Я нашел этот код для вставки в excel, чтобы выделить определенные ячейки после того, как вы вставите в ячейку.

 Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Set the context appropriately using With...End With
With Sheets("calendar")

    'Clear all previously-applied highlighting for easy readability
    .Cells.Interior.ColorIndex = xlColorIndexNone

    'Switch on the address of the selected cell
    Select Case Target.Address
    
        Case "$A$1" '<~ if cell A1 is clicked, highlight cells C5-C9 yellow
            .Range("C5:C9").Interior.Color = RGB(255, 255, 0)
            
        Case "$A$2" '<~ if cell A2 is clicked, highlight cell D5-D9 green
            .Range("D5:D9").Interior.Color = RGB(0, 255, 0)
            
        Case "$A$3" '<~ if cell A3 is clicked, highlight cell E5-E9 orange
            .Range("E5:E9").Interior.Color = RGB(255, 165, 0)
            
    End Select
End With
End Sub
 

Проблема в том, что он удаляет ВСЕ выделения на рабочем листе. Я хочу очистить выделение только после того, как выбранная ячейка больше не будет выбрана.

Комментарии:

1. Затем измените .Cells.Interior.ColorIndex = xlColorIndexNone эту строку следующим образом .Range(...).Interior.ColorIndex = xlColorIndexNone

2. Спасибо!!!!!!!! это сработало как заклинание. Знаете ли вы, как я могу изменить строку «регистр», вместо одной выбранной ячейки я хотел бы, чтобы диапазон выбранных ячеек выделял другую часть рабочего листа

3. @Harun24HR извини, забыл @ тебя

Ответ №1:

Приведенные ниже коды будут выполняться, если вы выполните действие с диапазоном A2:D5 . Вы можете изменить этот диапазон по своему усмотрению.

 If Not Application.Intersect(Target, Range("A2:D5")) Is Nothing Then   
    Range("C5:C9").Interior.Color = RGB(255, 255, 0)   
End If