Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A13:BW100000") If Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Is Nothing Then Set CrossRange = Intersect(WorkRange, Target.EntireRow) 'это окрас строк+столбец Set CrossRange = Intersect(WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete 'эта строка делает так, чтобы выделение не оставалось CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 17 Target.FormatConditions.Delete 'эта строка убирает заливку в активной ЯЧЕЙКЕ (она становится белой) End If End Sub [vba][code]
[/vba][/code][/vba] подскажите пожалуйста имеется умная таблица к ней применил макрос, как в макросе приписать не диапазон а всю таблицу...при изменении таблицы (добавляются строки) диапазон тоже меняетс
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A13:BW100000") If Target.Count > 1 Then Exit Sub
Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Is Nothing Then Set CrossRange = Intersect(WorkRange, Target.EntireRow) 'это окрас строк+столбец Set CrossRange = Intersect(WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete 'эта строка делает так, чтобы выделение не оставалось CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 17 Target.FormatConditions.Delete 'эта строка убирает заливку в активной ЯЧЕЙКЕ (она становится белой) End If End Sub [vba][code]
[/vba][/code][/vba] подскажите пожалуйста имеется умная таблица к ней применил макрос, как в макросе приписать не диапазон а всю таблицу...при изменении таблицы (добавляются строки) диапазон тоже меняетсmicholap_denis
Сообщение отредактировал micholap_denis - Понедельник, 24.08.2020, 11:24