В настоящее время код всегда выбирает столбец «A» активной строки при выборе любой активной ячейки, кроме строки 1, и временно переименовывает эту ячейку столбца A в «Мой диапазон». Это то, чего достигают первые несколько строк, после чего я пытаюсь выделить любую активную строку после строки 2 и очистить выделение, когда выбрана другая активная строка.
Кажется, есть проблема при выборе другой активной строки, так как предыдущая строка не очищает окраску.
Так что в примере я выбрал Тест 1 (Строка 3 - Активная Строка):
При выборе другой активной строки, например, теста 2 (строка 4 теперь является активной строкой), активная строка окрашивается, но ранее окрашенная строка 3 по-прежнему окрашена в
Каждый раз, когда я выбираю другую активную строку, предыдущая строка не очищает ее цвет, и я хочу сохранить любая раскраска в строке 1 (черная заливка в столбце I1), это то, что я хочу, чтобы вывод был похож, когда я выбираю другую активную строку, поэтому в этом случае я тест 1 был активной строкой (строка 3), но когда я выбрав Тест 2 (Строка 4) в качестве активной Строки, Строка 3 очищает ее окраску следующим образом:
Вот весь код, который я запускаю :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False 'This speeds up the macro by hiding what the macro is doing
If Target.Row > 1 Then
ActiveWorkbook.Names.Add Name:="MyRange", RefersToR1C1:=Range("A" & (ActiveCell.Row)) 'Defines the name of the ActiveCell as "MyRange" to Autofill VLookup Formula on sheet
Range("A" & (ActiveCell.Row)).Select 'Always Selects Column A depending on the Active Row selecte
Dim TR As Variant
TR = Target.Row > 2
With TR 'With Target refers to the Active Row being selected greater than Row 2
Target.EntireRow.Interior.ColorIndex = 0 'Clears Previous Cells Interior Color
Target.EntireRow.Interior.Color = RGB(243, 243, 123) 'Highlights the entire row that contain the active cell
End With
If Target.Address = "$A$2" Then 'Checks if you have selected Row 2 (The comparison row)
Target.Value = "" 'If Cell A2 is selected (the "Key" comparison cell from the comparison row) then a blank value is inputted
Else
[a2] = ActiveCell 'Makes cell "A2" equal to the Active Cell value (The "Key" in this case)
End If
End If
Application.ScreenUpdating = True 'Must be "True" after running the code to be able to Read/Write the Workbook
End Sub