Как скопировать форматирование исходной ячейки при использовании Vlookup в Excel?
В предыдущих статьях мы уже говорили о сохранении цвета фона при поиске значений с помощью функции vlookup в Excel. В этой статье мы представим метод копирования всего форматирования ячейки результата при выполнении Vlookup в Excel. Пожалуйста, следуйте инструкциям ниже.
Копирование форматирования источника при использовании Vlookup в Excel с помощью пользовательской функции
Предположим, у вас есть таблица, как показано на скриншоте ниже. Теперь вам нужно проверить, находится ли определенное значение (в столбце E) в столбце A и вернуть соответствующее значение с форматированием из столбца C. Пожалуйста, следуйте указаниям ниже для достижения этого.
1. На рабочем листе, содержащем значение, которое вы хотите найти с помощью vlookup, щелкните правой кнопкой мыши вкладку листа и выберите Вид кода в контекстном меню. См. скриншот:
2. В открывшемся окне Microsoft Visual Basic for Applications, пожалуйста, скопируйте приведенный ниже код VBA в окно Код.
Код VBA 1: Vlookup и возврат значения с форматированием
Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20211203
Dim I As Long
Dim xKeys As Long
Dim xDicStr As String
On Error Resume Next
Application.ScreenUpdating = False
Application.CutCopyMode = False
xKeys = UBound(xDic.Keys)
If xKeys >= 0 Then
For I = 0 To UBound(xDic.Keys)
xDicStr = xDic.Items(I)
If xDicStr <> "" Then
Set xRg = Application.Range(xDicStr)
xRg.Copy
Range(xDic.Keys(I)).PasteSpecial xlPasteFormats
Else
Range(xDic.Keys(I)).Interior.Color = xlNone
End If
Next
Set xDic = Nothing
End If
Application.ScreenUpdating = True
Application.CutCopyMode = True
End Sub
3. Затем нажмите Вставить > Модуль и скопируйте приведенный ниже код VBA 2 в окно Модуля.
Код VBA 2: Vlookup и возврат значения с форматированием
Public xDic As New Dictionary
'Update by Extendoffice 20211203
Function LookupKeepFormat(ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
Dim xFindCell As Range
On Error Resume Next
Application.ScreenUpdating = False
Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
If xFindCell Is Nothing Then
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "
Else
LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address(External:=True)
End If
Application.ScreenUpdating = True
End Function
4. Нажмите Инструменты > Ссылки. Затем отметьте флажок Microsoft Script Runtime в диалоговом окне Ссылки – VBAProject. См. скриншот:
5. Нажмите клавиши Alt + Q, чтобы выйти из окна Microsoft Visual Basic for Applications.
6. Выберите пустую ячейку рядом со значением поиска и введите формулу =LookupKeepFormat(E2,$A$1:$C$8,3) в строку формул, затем нажмите клавишу Enter.
Примечание: В формуле E2 содержит значение, которое вы будете искать, $A$1:$C$8 — это диапазон таблицы, а число 3 означает, что соответствующее значение, которое вы хотите вернуть, находится в третьем столбце таблицы. Измените их по необходимости.
7. Продолжайте выделять первую ячейку с результатом, затем перетащите маркер заполнения вниз, чтобы получить все результаты вместе с их форматированием, как показано на скриншоте ниже.

Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Связанные статьи:
- Как использовать vlookup и вернуть цвет фона вместе со значением поиска в Excel?
- Как использовать vlookup и вернуть формат даты вместо числа в Excel?
- Как использовать vlookup и сумму в Excel?
- Как использовать vlookup для возврата значения в соседней или следующей ячейке в Excel?
- Как использовать vlookup для возврата значения и вернуть true/false или да/нет в Excel?
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
- Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!
Все надстройки Kutools. Один установщик
Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.





- Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек