Как выполнить поиск значения и вернуть цвет фона вместе с найденным значением в Excel?
Предположим, у вас есть таблица, как показано на скриншоте ниже. Теперь вы хотите проверить, находится ли определенное значение в столбце A, и затем вернуть соответствующее значение вместе с его цветом фона из столбца C. Как это сделать? Метод, описанный в этой статье, поможет вам решить эту задачу.
Поиск значения и возврат цвета фона с помощью пользовательской функции
Поиск значения и возврат цвета фона с помощью пользовательской функции
Выполните следующие действия, чтобы найти значение и вернуть соответствующее значение вместе с цветом фона в Excel.
1. В листе, содержащем значение, которое вы хотите найти, щелкните правой кнопкой мыши ярлык листа и выберите Просмотр кода в контекстном меню. Смотрите скриншот:
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. Смотрите скриншот:
5. Нажмите клавиши Alt + Q, чтобы выйти из окна Microsoft Visual Basic for Applications и вернуться к листу.
6. Выберите пустую ячейку рядом с искомым значением, а затем введите формулу =LookupKeepColor(E2,$A$1:$C$8,3) в строку формул, и нажмите клавишу Enter.
Примечание: В формуле E2 содержит значение, которое вы будете искать, $A$1:$C$8 — это диапазон таблицы, а число 3 означает, что соответствующее значение, которое вы хотите вернуть, находится в третьем столбце таблицы. Измените их по мере необходимости.
7. Продолжайте выделять первую ячейку с результатом и перетащите маркер заполнения вниз, чтобы получить все результаты вместе с их цветом фона. Смотрите скриншот.
Связанные статьи:
- Как скопировать форматирование исходной ячейки при использовании функции поиска в Excel?
- Как выполнить поиск значения и вернуть формат даты вместо числа в Excel?
- Как использовать поиск значения и сумму в Excel?
- Как выполнить поиск значения и вернуть значение в соседней или следующей ячейке в Excel?
- Как выполнить поиск значения и вернуть «истина» или «ложь» / «да» или «нет» в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!