본문 바로가기
IT/Tips

엑셀 시트 복사 이름충돌 문제 해결 방법

by ITeaStory 2023. 1. 16.

엑셀 업무로 많이들 사용하시죠? 엑셀을 사용하다 보면 엑셀 시트 복사를 자주 하게 됩니다. 기존에 있던 시트를 복제해서 간단하게 양식을 가져다 쓸 수 있기 때문에 많이들 사용합니다. 저도 기존 엑셀 시트의 서식과 수식을 복사하고 수정해서 자주 사용합니다. 그러다 간혹 시트 복사 중 이름 충돌메시지를 볼 때가 있습니다. 이름이 이미 대상 시트에 있습니다. 라면서 말이죠.

이름 충돌

이 이름 충돌 메시지가 무한히 반복되는 것처럼 계속해서 나타나는 현상을 겪었습니다. 뭔지 몰라 취소 버튼을 눌렀는데  또 이동하거나 복사하려는 시트에 대상 워크시트에 있는 이름이 있다며 이 이름을 계속 쓸 건지 경고 메시지를 보여줍니다.
예를 누르든 아니요를 누르든 계속 이름 충돌 메시지가 나와서 뭔가 잘못됐음을 느끼게 되죠.

이름 충돌 계속 이름을 쓸건지 물어본다.

그래도 계속 취소하다 보면 언젠가는 저 메시지도 끝이 납니다. 이유가 뭘까요? 해답은 이름 관리자에 있습니다.
이름 관리자를 찾아가 봅시다.

1. 이름 관리자의 오류가 있는 이름 확인

상단의 수식탭을 클릭해 보면 함수 라이브러리, 정의된 이름, 수식 분석 등 다양한 수식 관련 내용들이 있습니다. 그중 정의된 이름의 이름 관리자가 이 모든 일의 원흉입니다.

이름 관리자

이름 관리자를 클릭해 봅시다. 그럼 아래처럼 이름 관리자 윈도우가 나타납니다. 자세히 보면 값에 #REF!라고 적힌 부분들이 보입니다. 값에도 있고 참조 대상에도 보이네요.
엑셀에서 #REF!는 참조하는 대상이 유효하지 않을 경우 엑셀에서는 #REF! 메시지를 띄웁니다. 우리가 수식을 이용할 때 잘못된 값을 참조했을 때 자주 볼 수 있습니다.

이름 충돌의 원인

이 오류가 있는 이름을 삭제해 주면 정상적으로 복사가 될 것입니다. 그런데 아까 뜨던 이름 충돌 메시지 대로라면 수십 개의 문제가 보여야 하는데 여기에는 2개밖에 없네요. 숨어있는 녀석들이 있다는 이야기입니다.

2. 엑셀의 비주얼 베이직 VBA

일단 이름 관리자 창을 닫아줍니다.
그리고 키보드의 Alt 키와 F11 키를 눌러줍니다.
그럼 아래처럼 Microsoft Visual Basic for Applications라는 윈도우가 하나 나타납니다. 이 윈도우는 VBA이라는 엑셀 솔루션을 개발하기 위한 개발 도구인데 이 것을 사용해서 숨어서 보이지 않던 오류가 있는 이름을 찾아낼 예정입니다.

엑셀의 MSVBA

3. 엑셀 VBA 모듈 추가

먼저 상단 메뉴바에서 삽입을 클릭해 줍니다. 그리고 하단을 보면 모듈(M)이 보입니다.. 이 모듈을 클릭해 줍니다.

삽입 - 모듈

모듈을 클릭해 보면 VBA 내부에 창이 하나 나타납니다.
여기에 숨어있던 이름을 찾는 코드를 작성해야 합니다.

4. 숨어 있던 이름을 찾는 코드 작성

숨어 있던 오류가 있는 이름을 찾기 위해 코드를 작성해 줍니다.
아래의 코드를 복사해서 붙여 넣어주세요.

Sub VisibleName()

Dim vNames As Name

For Each vNames In Names

       vNames.Visible = True

Next vNames

End Sub

아래 스크린샷 처럼 붙여 넣어주시면 됩니다.

숨어 있던 이름을 찾는 코드

5. 작성된 코드 실행

상단의 메뉴를 보면 작은 녹색 재생 모양 버튼이 있습니다. 작성한 코드를 실행하는 버튼입니다.
버튼을 클릭해 줍니다.

실행 버튼

 

6. 다시 이름 관리자에서 오류가 있는 이름을 확인

다시 아까 확인했던 수식의 이름 관리자를 실행해 봅시다. 이번에는 스크롤 바부터 심상치 않네요. 언듯 보기에도 #REF!가 엄청 많아 보입니다. 아까는 보이지 않던 숨어있던 이름들이 모두 나타나서 그렇습니다.

숨어 있던 이름도 나타난 모습

7. 오류가 있는 이름 필터링

오류가 있는 이름이 한두 개라면 클릭 몇 번으로 선택해서 삭제하겠지만 숫자가 많으면 하나하나 선택하기 힘듭니다. 필터를 이용해서 오류가 있는 이름만 골라내줍시다.

이름 관리자의 오른쪽 상단에 필터 항목이 보입니다.
클릭해 보면 필터 관련 옵션들이 보입니다. 필터 해제, 워크시트에 있는 이름, 통합 문서에 있는 이름, 오류가 있는 이름, 오류가 없는 이름, 정의된 이름, 표 이름.

이 중에서 우리는 오류가 있는 이름을 선택해 줍니다. 그럼 이름 관리자 내에 오류가 있는 이름만 보이게 됩니다.

이름 필터링

8. 오류가 있는 이름 삭제

이제 이름 관리자에 보이는 이름은 모두 오류가 있는 이름입니다.
전체 항목을 선택하기 위해 가장 첫 번째 항목을 클릭하고 스크롤 바를 내려 가장 마지막 항목을 키보드 Shift 키를 누른 채로 선택해 줍니다.

그럼 전체 항목이 파란색으로 선택됩니다. 그리고 상단의 삭제 버튼을 클릭해 주면 오류가 있는 이름 전체가 삭제됩니다.

오류가 있는 이름 삭제

이렇게 한 후 다시 엑셀 시트를 복사해 보면 이름 충돌 메시지 없이 잘 복사될 것입니다.

 

 

 

엑셀 복사 렉 멈춤 느려짐 현상 해결 방법

엑셀을 사용하다 보면 가끔 엑셀 창이 멈추거나 응답 없음 현상이 발생하곤 합니다. 저도 셀을 복사해서 붙여 넣으려고 복사를 했더니 응답 없음이 뜨는 현상을 오늘 겪었죠. 이를 해결하는 방

iteastory.com