В этой статье вы узнаете, как фильтровать данные на основе выбора ячейки.

Вам необходимо выполнить следующие шаги:

Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

img1

Введите следующий код в текущий рабочий лист (в нашем примере — Sheet1)

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean)

Dim xcolumn As Integer

Dim xvalue As String

xcolumn = ActiveCell.Column

xvalue = ActiveCell.Value

Если Application.Intersect (ActiveCell, [заголовки]) — это ничего, то

Если ActiveCell.Value <> «» Тогда

ActiveSheet.Range («A: d»). Поле автофильтра: = xcolumn, Criteria1: = xvalue

Отмена = Верно

Конец Если

Конец Если

End Sub

===

===

Private Sub Worksheet_SelectionChange (ByVal Target As Range)

Dim rownumber As Integer

rownumber = ActiveCell.Row

Если Application.Intersect (ActiveCell, [заголовки]) — это ничего, то

Если ActiveCell.Value <> «» Тогда

Диапазон («A1: D13»). Interior.ColorIndex = xlNone

Диапазон («A» & номер строки & «: D» & номер строки) .Interior.ColorIndex = 6

Конец Если

Конец Если

End Sub

img2

Примечание. Заголовки в приведенном выше коде представляют именованный диапазон для диапазона A1: D1. Вы можете просто выбрать диапазон A1: D1 и ввести заголовки в поле «Имя» или использовать «Определенное имя» на вкладке «Формулы»

img3

Событие BeforeDoubleClick * будет срабатывать каждый раз, когда пользователь нажимает двойной щелчок по любой ячейке, и это изменяет фильтр поиска.

  • Если мы хотим отфильтровать данные по продукту C, мы можем легко дважды щелкнуть ячейку D4, чтобы отфильтровать поиск.

img4

Если мы хотим отфильтровать поиск по столбцу C и продукту KFCWW, тогда мы дважды щелкнем по ячейке C4, чтобы сузить данные.

img5

Событие SelectionChange * активируется каждый раз, когда пользователь выбирает любую ячейку, и оно меняет цвет с белого на желтый. Если активная ячейка пуста, код не запускается.

  • Если мы щелкнем по ячейке B3, то строка будет выделена желтым цветом. См. Ниже снимок

img6

Здесь вы можете увидеть, что в строке формул отображается выбранная ячейка, то есть ячейка B3. Таким образом, вы можете выделить строки одним щелчком мыши и отфильтровать данные на основе выбора ячейки с использованием кода VBA.