Note: The other languages of the website are Google-translated. Back to English

Excel에서 Vlookup을 사용할 때 조회 셀의 원본 서식을 복사하는 방법은 무엇입니까?

이전 기사에서는 Excel에서 vlookup 값을 사용할 때 배경색을 유지하는 방법에 대해 설명했습니다. 이 기사에서는 Excel에서 Vlookup을 수행 할 때 결과 셀의 모든 셀 서식을 복사하는 방법을 소개합니다. 다음과 같이하십시오.

사용자 정의 함수로 Excel에서 Vlookup을 사용할 때 원본 서식 복사


사용자 정의 함수로 Excel에서 Vlookup을 사용할 때 원본 서식 복사

아래 스크린 샷과 같은 테이블이 있다고 가정합니다. 이제 지정된 값 (E 열)이 A 열에 있는지 확인하고 C 열에 서식을 지정하여 해당 값을 반환해야합니다.이를 달성하려면 다음과 같이하십시오.

1. 조회 할 값이있는 워크 시트에서 시트 탭을 마우스 오른쪽 단추로 클릭하고 코드보기 상황에 맞는 메뉴에서. 스크린 샷보기 :

2. 오프닝에서 응용 프로그램 용 Microsoft Visual Basic 창에서 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 스크립트 런타임 상자에 참조 – VBAProject 대화 상자. 스크린 샷보기 :

5. 누르세요 다른 + Q 나가는 열쇠 응용 프로그램 용 Microsoft Visual Basic 창.

6. 조회 값에 인접한 빈 셀을 선택한 다음 수식 입력 =LookupKeepFormat(E2,$A$1:$C$8,3) 수식 표시 줄을 누른 다음 엔터 버튼 키.

주의 사항: 공식에서 E2 조회할 값이 포함되어 있습니다. $ A $ 1 : $ C $ 8 테이블 범위 및 숫자 3 반환할 해당 값이 테이블의 세 번째 열에 있음을 의미합니다. 필요에 따라 변경하십시오.

7. 첫 번째 결과 셀을 계속 선택한 다음 채우기 핸들을 아래로 끌어 아래 스크린 샷과 같이 서식과 함께 모든 결과를 가져옵니다.


관련 기사 :


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (42)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
컴파일 오류, 구문 오류가 발생합니다.

도와주세요
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
기사에서 코드가 업데이트되었습니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
컴파일러 오류도 발생했습니다.
다음 변수를 실제 ""로 변경하면 수정됩니다. 아니 ';' 중간에.
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
실수에 대해 죄송합니다. 코드는 기사에서 업데이트되었습니다.
실수 " "는 두 개의 따옴표 " "여야 합니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
같은 오류가 발생했습니다.

';' 없이 실제 "'에 대해 " "를 변경해야 합니다. 아래에 표시된 바와 같이
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "

LookupKeepFormat = ""
xDic.Add Application.Caller.Address ""
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
실수로 죄송합니다. 기사에서 코드가 업데이트되었습니다. 공유해 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것은 훌륭합니다. 감사합니다! 유일한 문제는 동일한 시트에서 조회하는 경우 제대로 작동하지만 별도의 시트에서 소스 데이터를 조회하려고 할 때 작동하지 않는다는 것입니다. 계속 노력할 것입니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Julia, 다음 줄을 수정하십시오.
기능 LookupKeepFormat에서:
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address & "|" & 조회Rng.Parent.Name

하위 Worksheet_Change에서:
시트(Split(xDic.Items(I), "|")(1)).Range(Split(xDic.Items(I), "|")(0)).복사
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이봐, 휴고


Julia와 같은 문제가 있습니다. 다른 시트에서는 작동하지 않습니다. 전체 함수 및 하위 워크시트에 대한 코드 작성을 도와주실 수 있나요? xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address & "|"을 교체/삽입할 위치를 잘 모르겠습니다. & LookupRng.Parent.Nam 및 Sheets(Split(xDic.Items(I), "|")(1)).Range(Split(xDic.Items(I), "|")(0)).Copy


답례로 감사합니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
후속 Hugo에 크게 감사드립니다!
불행하게도 Vi와 마찬가지로 저는 당신이 제안한 코드 수정 사항을 삽입할 위치를 찾기에는 너무 초심자입니다...

다시 한 번 감사합니다. 좋은 하루 보내세요 :)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕


코드를 사용하려고 했지만 첨부된 사진에 오류가 표시됩니다. 도움을 주시면 대단히 감사하겠습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
실수로 죄송합니다. 기사에서 코드가 업데이트되었습니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,

오류가 발생하지 않고 조회를 수행하지만 내 조회 값이 다른 워크시트에 있기 때문에(더 가능성이 높은 시나리오) 서식을 가져오지 않습니다. 내가 만들 수있는 코드에 대한 조정이 있습니까? (저는 코딩 초보자이므로 변경해야 하는 부분을 구체적으로 알려주세요) 감사합니다! 내 스프레드시트 중 하나에 이 기능을 추가하게 되어 기쁩니다!!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이 질문에 대해 운이 좋으면 시트 전체에서 서식을 조회할 수 있는 방법은 무엇입니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
트윅도 구합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
또한 "If" 문의 일부로 수식을 추가하면(아래 참조) LOL을 원하는 대로 셀 서식을 지정합니다(또는 최소한 그렇게 보입니다. 한 셀, 텍스트는 위쪽 테두리가 있는 음영 처리되고 굵게 표시됩니다. 셀; 다른 셀, 텍스트 중앙에 위치)


=IF($F19 = "", "",LookupKeepFormat(F19,'항목 번호'!$A$1:$M$1226,2))
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나는 이것을 시도했고 컬러 배경 만 가져 오는 것을 시도했지만 동일한 오류가 발생합니다. 컴파일 오류: 모호한 이름이 감지되었습니다. 확인을 클릭하면 xDic이 강조 표시됩니다. 어떤 제안? 저는 이 모든 것에 익숙하지 않으므로 도와주세요/설명해주세요 :) 미리 감사드립니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 제니입니다.
4단계에서 언급한 대로 Microsoft Script Runtime 옵션을 활성화하는 것을 잊지 마십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
여보세요. 빈 스프레드시트를 만들고 Excel 2013에서 예제를 복제했지만 컴파일 오류가 계속 발생합니다. 구문 오류 및 Dim I As Long이 강조 표시됩니다. 내가 놓친 것이 있습니까? 나는 이것을 작동시키고 싶습니다. 고맙습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 로라,
4단계에서 언급한 대로 Microsoft Script Runtime 옵션을 활성화하는 것을 잊지 마십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 현재까지 문제없이 Excel 2010에서 위의 코드를 사용하고 있습니다. 그러나 최근에 Office 2016으로 업그레이드했으며 이제 둘 이상의 행을 채우려고 할 때마다 코드가 Excel과 충돌합니다. 불행히도 "Microsoft Excel이 작동을 멈췄습니다."라는 오류가 표시되지 않습니다. 이전에 이 문제를 접한 적이 있는지, 2016년에 이 문제를 해결하기 위해 제가 해야 할 일이 있는지 궁금합니다. 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 리,
코드는 내 Excel 2016에서 잘 작동합니다. 문제를 해결하기 위해 코드를 업그레이드하려고 합니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 코드 주셔서 감사합니다. 오류 메시지가 표시되지 않지만 수식은 일반적인 vlookup으로만 작동합니다. 도와 주시겠습니까? 시간 내 줘서 고마워.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

저도 똑같은 문제가 있는데 해결 방법을 알아내셨나요?

감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 "컴파일 오류: 모호한 이름 감지됨: xDic" 오류가 발생했습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 "컴파일 오류: 모호한 이름 감지됨: xDic" 오류가 발생했습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 저는 VBA를 처음 사용하고 스프레드시트에서 이 코드를 사용해 보았지만 조회를 사용할 때 Rec2 탭의 텍스트 서식이 Rec 탭으로 넘어오지 않습니다. 도움을 주시면 감사하겠습니다. 감사합니다 팻
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
여기 파일과 사진이 있습니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
동일한 모호한 이름 오류가 발생합니다. 해결한 사람이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
동일한 모호한 이름 오류가 발생합니다. 해결한 사람이 있습니까?
아직 코멘트가 없습니다
더보기

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호