Добрый вечер! Подскажите пожалуйста как доработать следующий макрос:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static oldRow As Long On Error Resume Next Rows(oldRow).Interior.ColorIndex = xlColorIndexNone Target.EntireRow.Interior.Color = RGB(234, 244, 234) 'светло-зеленый oldRow = Target.Row End Sub
Выше приведенный код, работает почти "как надо" - выделяет всю строку при перемещении по ячейкам, хотелось бы доработать так - что бы он выделял не всю строку, а только первые 30 ячеек строки и только при перемещении по ячейкам из столбца P, а не по всем ячейкам листа.
Спасибо! буду пробовать, но в макросах я полный "0", (выше приведенный код нашел на просторах интернета) подскажите вместо какой строки нужно вставить эти две строки?
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки If Not Intersect(Target, Columns("P")) Is Nothing Then
эта строка Range(Cells(Target.Row,1), Cells(Target.Row,30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый скорее всего вместо этой Target.EntireRow.Interior.Color = RGB(234, 244, 234) 'светло-зеленый?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
If Not Intersect(Target, Columns("P")) Is Nothing Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
End If
End Sub
Спасибо! но что то с ним не так...он не очищает за собой ранее выделенные строки.
первоначальный вариант в сцепке с (Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) ) работает как надо, но для всех ячеек, а хотелось бы только для ячеек из ст.Р
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static oldRow As Long On Error Resume Next Rows(oldRow).Interior.ColorIndex = xlColorIndexNone Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый oldRow = Target.Row End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
If Not Intersect(Target, Columns("P")) Is Nothing Then
Cells.Interior.ColorIndex = xlColorIndexNone
Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
If Not Intersect(Target, Columns("P")) Is Nothing Then
Cells.Interior.ColorIndex = xlColorIndexNone
Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
Else
Cells.Interior.ColorIndex = xlColorIndexNone
End If
End Sub