Перейти к содержимому

Как выполнить поиск значения и вернуть цвет фона вместе с найденным значением в Excel?

Author: Siluvia Last Modified: 2025-06-05

Предположим, у вас есть таблица, как показано на скриншоте ниже. Теперь вы хотите проверить, находится ли определенное значение в столбце A, и затем вернуть соответствующее значение вместе с его цветом фона из столбца C. Как это сделать? Метод, описанный в этой статье, поможет вам решить эту задачу.

A screenshot of a sample Excel table to perform VLOOKUP with background color return

Поиск значения и возврат цвета фона с помощью пользовательской функции


Поиск значения и возврат цвета фона с помощью пользовательской функции

Выполните следующие действия, чтобы найти значение и вернуть соответствующее значение вместе с цветом фона в Excel.

1. В листе, содержащем значение, которое вы хотите найти, щелкните правой кнопкой мыши ярлык листа и выберите Просмотр кода в контекстном меню. Смотрите скриншот:

A screenshot showing the right-click context menu on an Excel sheet tab with 'View Code' option highlighted

2. В открывшемся окне Microsoft Visual Basic for Applications, пожалуйста, скопируйте приведенный ниже код VBA в окно Код.

Код VBA 1: Поиск значения и возврат цвета фона с найденным значением

Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xKeys As Long
    Dim xDicStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    xKeys = UBound(xDic.Keys)
    If xKeys >= 0 Then
        For I = 0 To UBound(xDic.Keys)
            xDicStr = xDic.Items(I)
            If xDicStr <> "" Then
                Range(xDic.Keys(I)).Interior.Color = _
                Range(xDic.Items(I)).Interior.Color
            Else
                Range(xDic.Keys(I)).Interior.Color = xlNone
            End If
        Next
        Set xDic = Nothing
    End If
    Application.ScreenUpdating = True
End Sub

3. Затем нажмите Вставить > Модуль и скопируйте приведенный ниже код VBA 2 в окно Модуль.

Код VBA 2: Поиск значения и возврат цвета фона с найденным значением

Public xDic As New Dictionary
Function LookupKeepColor (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
    Dim xFindCell As Range
    On Error Resume Next
    Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
    If xFindCell Is Nothing Then
        LookupKeepColor = ""
        xDic.Add Application.Caller.Address, ""
    Else
        LookupKeepColor = xFindCell.Offset(0, xCol - 1).Value
        xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
    End If
End Function

4. После вставки двух кодов нажмите Инструменты > Ссылки. Затем отметьте поле Microsoft Script Runtime в диалоговом окне Ссылки – VBAProject. Смотрите скриншот:

A screenshot of the References dialog box in VBA with 'Microsoft Script Runtime' option checked

5. Нажмите клавиши Alt + Q, чтобы выйти из окна Microsoft Visual Basic for Applications и вернуться к листу.

6. Выберите пустую ячейку рядом с искомым значением, а затем введите формулу =LookupKeepColor(E2,$A$1:$C$8,3) в строку формул, и нажмите клавишу Enter.

A screenshot of the LookupKeepColor formula entered in Excel with the color retained in the result

Примечание: В формуле E2 содержит значение, которое вы будете искать, $A$1:$C$8 — это диапазон таблицы, а число 3 означает, что соответствующее значение, которое вы хотите вернуть, находится в третьем столбце таблицы. Измените их по мере необходимости.

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

A screenshot showing the final VLOOKUP results with background colors retained


Связанные статьи:

Лучшие инструменты для повышения продуктивности работы с Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных на основе: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Расширенных функций Kutools
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!