#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