본문 바로가기
엑셀/VBA

엑셀 시트 복사 오류 이름충돌 해결방법

by 자유개척가 2020. 6. 30.
반응형

이름관리자 삭제 코드.xlsx
0.01MB

안녕하세요. 오늘은 엑셀을 사용하시는 분이라면 한 번쯤은 반드시 겪었을 문제 해결법에 대해 알아보겠습니다. 어떤 문제인지 궁금하실 텐데요. 오늘 알려드릴 문제는 시트 복사와 관련된 문제입니다. 현업에서 엑셀을 사용할 때 다른 파일에 있는 시트를 통째로 복사해 가져오거나 내보내기를 하는 경우가 굉장히 많습니다. 시트 내에 있는 서식과 수식들을 그대로 가져올 수 있기 때문에 빠른 퇴근을 위해서는 필수적인 기능이죠. 그런데 시트 복사를 하다 보면 아래와 같은 창이 뜨는 경우를 보셨을 겁니다. 

 

이름 충돌 경고 창

위와 같이 이름이 충돌한다는 메시지가 뜨게 됩니다. 문제는 예를 한번만 눌러서 창이 없어지면 되는데 계속 눌러도 없어지지 않고 계속 창이 뜨는 현상을 분명 겪으셨을 겁니다. 말 그대로 무한 엔터키를 대략 1~2분 정도 눌러주면 그제야 창이 없어지곤 하죠. 이런 현상이 나타나는 이유는 이름 관리자에 있는 수많은 이름이 다른 파일에 있는 이름과 충돌하면서 생기는 겁니다. 그럼 어떻게 해결하는지 구체적으로 알아보겠습니다.

 

이름 관리자를 클릭했을 때

수식탭에 들어가 이름 관리자를 클릭해줍니다. 그럼 위와 같은 창이 뜹니다. 값에 보면 오류들이 잔뜩 보이는데요. 저기 보이는 오류 값을 삭제하면 됩니다. 그런데 아마 삭제를 하더라도 또 같은 창이 뜨는 현상이 나타날 겁니다. 왜냐하면 숨어있는 값들이 다 삭제가 되지 않았기 때문이죠. 그래서 숨어있는 값들도 다 나타나게 한 다음에 깔끔하게 삭제를 해줘야 합니다. 그럼 숨어 있는 이름값을 어떻게 나타나게 하는지 알아볼까요?

코드보기

숨어있는 이름을 나타나게 하려면 일반적인 엑셀 기능으로는 불가능합니다. 그래서 약간의 코딩을 해줘야하는데요. 엑셀에서는 VBA라는 코딩 언어가 있어 그걸 사용하면 됩니다. 코딩을 전혀 모르셔도 쓰시는데 전혀 지장이 없기 때문에 걱정 안 하셔도 됩니다. 저도 코딩은 잘 모르니까요.

 

그럼 어떻게 하는지 알려드리겠습니다. 파일 내 아무 시트 오른쪽을 클릭하고 위에 보이는 코드 보기로 들어갑니다. 그럼 아래와 같은 창이 뜹니다.

코드 창

중간에 보이는 하얀색 바탕의 창에 코드를 입력해주면 되는데요. 저 안에 아래 문장을 복사/붙여 넣기 해줍니다.

 

---------------------------------------------

Sub Show_Names()
Dim n As Name
For Each n In ThisWorkbook.Names
n.Visible = True
Next n
End Sub

---------------------------------------------

 

복사가 안될 시 첨부파일 받으셔서 복사해서 쓰시면 됩니다.

 

코드 입력

위와 같이 복사해서 코드를 입력했으면 F5를 눌러줍니다. F5는 코드를 실행하는 단축키입니다. 그리고 창을 닫아 줍니다. 요약하자면 코드 복사/붙여넣기->F5 누르기->창 닫기 순서 입니다.

 

그리고 다시 이름 관리자에 들어갑니다. 그러면 기존에 없었던 이름들이 보이게 될 겁니다. 이제 충돌하는 이름을 모두 삭제하기만 하면 됩니다. 여기서 한 가지 주의할 점은 이름 관리자를 전부 삭제하시면 인쇄 영역 설정까지 전부 삭제가 되기 때문에 번거로울 수가 있습니다. 인쇄 영역을 굳이 필요 없으신분은 아래 설명드릴 작업은 따로 안하셔도 무방합니다. 그런데 인쇄영역을 살려야 한다면 필요한 부분만 남겨놓고 삭제하셔야 합니다. 이름에 Print_Area 혹은 Print_Titles이라고 되어 있는 이름은 살려두고 나머지 이름만 삭제하시면 됩니다.

이름관리자 인쇄영역

불필요한 이름을 다 삭제하고 이름 관리자 창을 닫아주시면 됩니다. 그리고 마지막으로 주의할 점은 아까 코드를 입력했던 시트 코드 보기로 다시 들어가셔서 입력했던 코드를 삭제하고 창을 닫아 주셔야 합니다. 그러지 않으면 파일을 저장 하 실 때 못 보던 창을 보게 되실 겁니다. 해당 파일이 코드를 입력하는 순간 매크로 파일로 인식해 파일 형식을 바꿔서 저장하라는 건데 굳이 모르셔도 무방합니다.

 

어쨌든 여기까지 다 하시고 다시 시트 복사를 하시면 처음 봤던 창이 뜨지 않을 겁니다. 간혹 창이 뜨긴 하는데 2~3개 정도라 엔터  몇 번만 클릭해주시면 바로 시트 복사가 가능하실 겁니다.

 

지금까지 시트 복사 시 이름 충돌 오류 해결법에 대해 알아보았습니다. 정말 바쁜데 이름 충돌에 걸려버리면 아무 작업도 할 수 없는 상황에 놓이게 되는데 위 방법으로 잘 해결하셨으면 좋겠습니다.

2020.06.04 - [엑셀/함수] - 엑셀 VLOOKUP 다중조건 해결하는 법

 

엑셀 VLOOKUP 다중조건 해결하는 법

오늘은 지난 시간에 이은 VLOOKUP 다중조건에 대해 알아보겠습니다. VLOOKUP 다중조건을 설명하기 위해 VLOOKUP의 한계에 대해 먼저 말씀드리겠습니다. 일단 지난 시간에 했던 VLOOKUP으로 아래 예시의

ryusfactory.tistory.com

2020.06.05 - [엑셀/함수] - 엑셀 INDEX MATCH 함수 쓰는 방법

 

엑셀 INDEX MATCH 함수 쓰는 방법

실무에서 가장 많이 쓰이는 함수를 하나 꼽으라면 단연코 vlookup 함수가 1등일 것 입니다. 그런데 vlookup 함수는 한계가 있습니다. 조건이 두개 일 경우 임의로 자료를 가공해야하는 불편함이 있습

ryusfactory.tistory.com

 

반응형

댓글