Ниже мы рассмотрим программу в Excel VBA, которая выделяет строку и столбец активной ячейки (выбранная ячейка). Эта программа будет удивлять и произвести впечатление на босса.

Ситуация:

Highlight Active Cell in Excel VBA

Каждый раз, когда мы изменяем активную ячейку на Лист1, макрос нужно выполнить. Вы можете достичь этого путем создания рабочего листа SelectionChange события.

  1. Откройте редактор Visual Basic.

  2. Дважды щелкните на Sheet1 (Лист1) в окне Project Explorer.

  3. Выберите рабочий лист из списка слева раскрывающегося списка. Выберите SelectionChange справа в раскрывающемся списке.

Worksheet SelectionChange Event in Excel VBA

Добавьте следующие строки кода к планшетным SelectionChange Событие:

  1. Мы объявляем четыре переменные типа Integer. Один названный rowNumberValue, один названный columnNumberValue, один с именем я и один с именем J.

Dim rowNumberValue As Integer, columnNumberValue As Integer, i As Integer, j As Integer
  1. Во-первых, мы добавим строку, которая изменяет цвет фона всех ячеек «No Fill».

Cells.Interior.ColorIndex = 0
  1. Мы инициализировать переменную rowNumberValue с номером строки активной ячейки и переменной columnNumberValue с номером столбца активной ячейки.

rowNumberValue = ActiveCell.row

columnNumberValue = ActiveCell.column
  1. Мы подчеркиваем столбец синий. То есть: все ячейки с номером строки меньше или равно rowNumberValue и номер столбца, равным columnNumberValue

For i = 1 To rowNumberValue

Cells(i, columnNumberValue).Interior.ColorIndex = 37

Next i

Объяснение: для этого примера (см рисунок выше), rowNumberValue равна 12 и columnNumberValue равно 8. строк кода между For и Next будет выполняться двенадцать раз. При г = 1, Excel VBA цвета ячейке на пересечении строки 1 и столбца 8. Для I = 2, Excel VBA цвета ячейки на пересечении строки 2 и столбца 8, и т.д.

Примечание: вместо ColorIndex номер 37 (синий), вы можете использовать любое количество ColorIndex.

  1. Аналогичным образом, мы выделяем строку синего цвета. То есть: все ячейки с номером строки, равное rowNumberValue и номер столбца меньше или равно columnNumberValue.

For j = 1 To columnNumberValue

Cells(rowNumberValue, j).Interior.ColorIndex = 37

Next j
  1. Теперь пришло время протестировать программу. Скачать файл Excel и посмотреть, как строка и столбец активной ячейки подсвечиваются каждый раз при смене активной ячейки.