Выделите ячейку из значения другой ячейки (диапазон dyanmi c) - PullRequest
0 голосов
/ 14 января 2020

Пролистав очень похожие посты, я просто не могу найти решение для моего уникального запроса. Я смог построить формулу до этого момента, используя эти потоки, но меня просто смущает наличие двух операторов IF.

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address = "$U$14" Then
    Dim rng As Range, cell As Range, LastRow As Long

    With Sheets("Sheet4")
        LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
    End With

    Set rng = Range("A2:A" & LastRow)

    'If O2:O200 is BLANK then highlight corresponding row (xlUp) in Column A yellow
    For Each cell In rng
        cell.Interior.ColorIndex = 27
    Next
Else
    cell.Interior.ColorIndex = 2
End If

End Sub

То, что я хочу сделать, это для каждой ячейки, начиная с O2 до O & LastRow, если оно пустое, выделите соответствующую строку (xlUp) в столбце A.

(xlUp) - потому что я хочу, чтобы оно выделило имя человека, а не просто строка, означающая, что человек еще не собрал Предмет.

Затем, когда вы щелкнули по ячейке U14, вернули его в нормальное состояние.

Извините, что это так небрежно, я попытался поставить как многое в этом, как я мог понять сам.

ПРИМЕР: EXAMPLE

1 Ответ

0 голосов
/ 16 января 2020

Спасибо Скотту Кранеру за решение моей проблемы выделения с использованием некоторого умного условного форматирования. Чтобы решить возможность переключения условного форматирования с помощью активации ячейки, я сделал следующее на случай, если кто-то захочет узнать:

Я установил условный формат ABOVE функцию, которая удалила все форматирование и проверила «Stop If True». Была использована следующая формула:

    =NOT($U$12)
'U12 is the dedicated cell for displaying TRUE or FALSE, use any cell

Затем я использовал следующий VBA, чтобы по существу переключить ячейку в значение true или false, что затем вызвало условное отсутствие формата в true, если была выбрана указанная ячейка c, и false когда нет:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address = "$U$14" Or ActiveCell.Address = "$U$13" Then
    Range("$U$12").Value = True
Else
    Range("$U$12").Value = False
End If

End Sub

Теперь, когда я выделяю ячейки U13 или U14, будут выделены все имена в столбце A, которые не были выбраны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...