본문 바로가기
엑셀 (Excel)/엑셀 매크로 VBA

Excel 엑셀 매크로 - 이름 관리자 오류 및 중복 해결 Macro

by ★√★ 2021. 3. 14.

안녕하세요 Davey 입니다. 이번에 포스팅 할 내용은, 엑셀을 사용하면서, 빈번하게 일어나는 현상 중에 하나인, “이름 관리자 오류 및 중복” 이슈입니다. 이로인해 Sheet 이동 / 복사 시 이름 충돌로 인해 귀찮은 반복된 작업을 할 수도 있기 때문입니다.

 

 간혹 Excel을 이용하시다 보면, Sheet를 복사 해서 사용할 경우가 생깁니다. 그럴 경우에, 간혹, 아래와 같이 이름이 중복되어 있어, 이름 충돌 현상이 일어나게 됩니다. 출동이 일어나면, 아래와 같은 경고창을 보실 수 있습니다. 

 

이름-관리자-에러-창
이름-관리자-에러

- 그럼 우선 여기에서 "이름 관리자" 가 무엇인지 먼저 살펴보도록 하겠습니다. 이름 관리자에 대한 설명은 아래 내용 참조 부탁 드립니다.

 

 

1. 이름 관리자 

: 각 셀에 지정되는 위치 변수 (Ex. "A1" or "B1") 가 아닌 특정한 이름을 지정하여, 그 셀에 있는 항목을 이용하는데 사용합니다. 이름관리자를 실행하는 경로는 아래와 같습니다. 

 - [수식] - [이름 관리자] 

 

이름-관리자-메뉴
이름-관리자-메뉴

- 실행을 하면 아래와 같이 팝업 메뉴가 등장을 합니다. 현재는 아무 이름이 없기 때문에 비어 있는 상태입니다. 아래에 보이는 "새로 만들기" 항목을 눌러서, 이름을 생성을 할 수가 있습니다.

 

이름-관리자-창
이름-관리자-창

 

 

2. “이름 관리자 오류 및 중복” 이슈 원인 및 해결 방법

- 이름 관리자 오류 및 중복 이슈는 아래와 같이 해당 이름에 Assign 되어 있는 항목에 Error가 발생했기 때문에, 발생하는 Error 입니다. 이 부분을 해결을 할려면 간단하게 이 Error 부분을 삭제를 해주시면 됩니다. 일단 이 Error 부분을 쉽게 필터를 해주기 위해, 필터를 이용하여, "오류가 있는 이름" 만 보여주게 설정을 해줍니다. 그럼 아래와 같이 Error 입력된 사항만 보여주게 됩니다.

 

이름-관리자-메뉴
이름-관리자-메뉴
이름-관리자-메뉴

 

- 그리고 나서 해당 이름들을 다 선택을 해서 "삭제" 버튼을 이용하여 삭제를 해주시면 됩니다. 하지만 이럼에도 불구하고, 계속적인 Error가 나타나느 경우가 있습니다. 그 경우는, 현재 보여지지 않은 "이름"들이 있어서, error를 발생 시키기 때문입니다. 

 

- 이 부분은, Macro로 해결을 하셔야 합니다. 보이지 않는 이름들을 보여주기 위한 Macro 코드는 아래와 같습니다. 

 

==================================================================================

 

Sub Name_Duplicated_Error_Delete01() 

Dim test1 As Name  ' "이름 Type" 으로 "test1" 변수 선언


   ' "Names" 는 이름관리자에 등록되어 있는 이름들의 집합입니다. 그 이름들의 집합을 For 문으로 돌려주는 것입니다.
   

     For Each test1 In Names 

         test1.Visible = True  ' 이름들 모두 다 보이게, Visible 항목을 다 "True" 로 변경해드립니다.
     
     Next test1 

End Sub

 

=================================================================================

 

 

- 위 Macro 코드를 돌려보면 아래와 같이 안 보였던 이름이 보여지게 됩니다. 이 부분까지 지우면, "이름 관리자 오류 및 중복” 이슈를 완벽하게 해결 하실 수 있습니다. 정말 해결 방안은 간단한데, 이걸 찾고 분석하고, 알아가는게 좀 시간이 걸립니다. 그렇다고 해도, 항상 sheet를 복사 할 때마다, 이름이 중복된다고 해서, 엔터를 누르거나 그에 대응하는 값을 입력하는 것보다는 덜 스트레스 받을 거라고 생각합니다. 이 부분은 한 번 알면, 다음에 계속적으로 써 먹을 수 있기 때문입니다. 

 

매크로-구현
매크로-구현

 

이상입니다. 정말 내용면으로는 간단하지만, 이걸 모르면, 계속적으로 이름 중복 에러를 보는 게 정말 스트레스더라구요. 저도 엑셀을 많이 쓰다 보니까, 이렇게 하나 하나 팁을 싾아 가는 거 같습니다. 구글이나 MS office 사이트를 통해서 제가 모르는 것도 알아 가는 재미가 있습니다. 여러분들도 모르는 부분이 있으면 구글이나 MS office 사이트에서 스스로 찾아보는 습관을 길러 가는 것도 좋은 현상이라고 생각합니다. 저도 나름대로, 하나 하나 좋은 팁 있으면 바로 포스팅 하도록 하겠습니다. 그럼 오늘도 공부하느라고 수고하였습니다. 항상 애기 드리지만, 같이 성장하시죠! 감사합니다. 

 


[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

 

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab