Ну тогда углубляйтесь в макросы. Выше написал уже - приведенный код не запускается с кнопки и не будет через неё работать, т.к. настроен на работу по наступлению события. В данном случае - срабатывать должен при смене выделения ячеек.
Чтобы этот код работал с кнопки - надо его переписывать. А чтобы переписать - надо знать, что им планировалось делать и при каких обстоятельствах - вдруг там вовсе не код переписывать надо, а в надстройке делать дополнения?
И в PERSONAL этот код, кстати, тоже не работал бы. В таком виде код может работать исключительно в той книге, в которой записан и отслеживать изменения может только в ней.
Но если хотите с кнопки - можно записать его так:
Чтобы этот код работал с кнопки - надо его переписывать. А чтобы переписать - надо знать, что им планировалось делать и при каких обстоятельствах - вдруг там вовсе не код переписывать надо, а в надстройке делать дополнения?
Но если хотите с кнопки - можно записать его так:
| Код |
|---|
Sub ColorSelection()
' Список листов, на которых макрос НЕ должен работать
Dim Sh As Worksheet, Target As Range
Dim исключенныеЛисты As Variant
Dim i As Integer
Set Target = Selection
Set Sh = Target.Parent
исключенныеЛисты = Array("ИТОГ") ' Можно добавить другие: "Лист8", "Лист9"
' Проверяем, не находится ли текущий лист в списке исключённых
For i = LBound(исключенныеЛисты) To UBound(исключенныеЛисты)
If Sh.Name = исключенныеЛисты(i) Then Exit Sub
Next i
' Очищаем заливку на всём листе, где произошло изменение
Sh.Cells.Interior.ColorIndex = xlNone
' Проверяем, чтобы не выйти за пределы
If Target.Row > 0 And Target.Column > 0 Then
' Задаем цвет строке, НО только для столбцов, где есть значения
Dim lastCol As Long
lastCol = Sh.Cells(Target.Row, Sh.Columns.Count).End(xlToLeft).Column
If lastCol >= 1 Then
Sh.Range(Sh.Cells(Target.Row, 1), Sh.Cells(Target.Row, lastCol)). _
Interior.Color = RGB(255, 230, 200) 'Тёплый пастельный (персиковый оттенок)
End If
End If
End Sub |
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...