“엑셀 1004 런타임 오류가 발생 하였습니다”“안녕하세요. 스프레드 시트에 매크로를 실행할 때 마다 오류가 떠요. 이 오류는 런타임 오류 ‘1004’ : 애플리케이션 정의 혹은 대상 정의 오류 라고 뜨네요. 어떻게 하면 매크로를 고쳐서 다시 실행할 수 있나요?‘
- Reddit 유저
매크로와 VBA를 이용해서 작업하는 사용자분들을 자주 엑셀 매크로 런타임 오류 1004를 마주합니다. 이는 주로 응용 프로그램 - 정의 혹은 대상 - 정의 오류, 대상의 ’범위‘ 방법 ’_ 워크시트‘ 오류, 워크시트 클래스 복제 방법 오류 등과 같은 여러 유형의 메시지를 동반합니다.여러분이 마주하신게 어떤 엑셀 1004 런타임 오류이든, 원인들을 밝혀드리겠습니다. 또한, 간단한 단계로 런타임 오류 1004를 해결하는 법도 알려드리겠습니다. 자. 시작해볼까요?
이렇게하면 말끔한 사본으로 처음부터 윈도우 11을 여러가지 옵션과 함께 재설치하게 해주죠. 윈도우 11 PC가 문제를 일으키거나 느리다면, 기본 공장 설정으로 초기화할 수도 있습니다. 완벽한 윈도우 11 공장초기화 방법은 무엇일까요? 여기서 두가지 효과있는 방법을 단계별로 알려드려서 윈도우 11 공장초기화를 도와드리겠습니다. 자, 시작해볼까요?
파트 1 : 엑셀에서 런타임 오류 1004가 의미하는 것
솔루션을 알아보기 전에 런타임 오류 1004가 무엇이고 무엇이 이 오류를 발생시키는지 아는 것은 중요합니다.
엑셀 런타임 오류 1004는 매크로가 VBA 코드를 실행 중 일 때 에러를 만나면 발생하는 흔한 오류입니다. 이 오류는 이 오류의 원인을 알리는 메시지와 나타납니다. 런타임 오류 1004의 흔한 원인들은 다음과 같습니다 :
- 셀 혹은 범위 참조가 워크시트에 없음.
- VBA 코드가 대상 참조에 적합하지 않음.
- 외부 애드인과 엑셀이 충돌함.
- 워크시트가 보호 모드임.
- 엑셀이 오래됐거나 오작동함.
- 엑셀 파일이 손상됨.
파트 2. VBA에서 엑셀 1004 런타임 오류 해결 방법
나타나는 특정 메시지에 따라 런타임 오류 1004의 해결법은 달라질 것입니다. 다음은 런타임 오류 1004 메시지가 나타나지 않게 하는 몇가지 해결법들입니다.
해결법 1. 셀 참조 및 범위 확인하기
VBA 코드가 활성된 워크시트에 존재하지 않은 셀이나 범위를 참조한다면 엑셀이 런타임 오류 1004를 표시할 것입니다. 예를 들어, 매크로가 워크시트 2에 있는 “bars” 라는 이름의 범위를 참조하려고 하는데 활성 시트가 워크시트 1일때입니다. 또한 셀이나 범위 참조가 유효하지 않은 이름을 가질 수도 있습니다.
먼저 매크로에 사용되는 모든 셀 및 범위 참조를 크로스 체크해서 참조된 셀과 범위가 유효한 이름을 가졌는지 확인해야 합니다. 다음으로, 활성화된 워크시트를 확인해서 참조된 셀과 범위가 워크시트에 있고 매크로가 방해없이 이들을 사용할 수 있는지 확인하세요.
해결법 2. 대상 참조 맞추기
매크로의 VBA 코드가 요건을 충족시키지 못 하는 대상 참조라면 엑셀에서 런타임 오류 1004가 나타날 수 있습니다. 요건을 충족시키는 대상 참조는 VBA 코드내의 대상의 완전한 위계를 언급하는 것입니다. 이는 상위 대상이 먼저 오고 하위 대상이 그 다음, 마지막으로 여러분이 참조하는 대상이 와야한다는 뜻입니다.
예를 들어 완전히 요건을 충족 시키는 참조는 “Application.Workbooks("WorkBook1.xlsx").Worksheets("WorkSheet1").Range("A1")” 이고 요건을 충족시키지 못 하는 참조는 “Worksheets("WorkSheet1").Range("A1")” 일것입니다. 요건을 충족시키지 못 하는 대상 참조는 참조 대상에 접근할 때 혼란과 충돌을 야기시키고 이는 특히 같은 이름을 가진 다수의 워크북 및 워크시트로 작업을 할 때 더욱 그렇습니다.
따라서, 실행할 때 오류가 나타나는 매크로의 VBA 코드를 크로스 체크해봐야 합니다. 요청을 충족시키지 못하는 대상 참조를 찾아서 저희가 특정한 것과 같이 완전히 요청을 수행할 수 있는 대상 참조로 변환하세요. 만약 이것이 요청을 수행할 수 없는 대상 참조로 인한 것이라면 매크로를 다시 실행해서 문제를 해결하면 됩니다.
해결법 3. GWXL97.XLA를 삭제해서 런타임 오류 1004 해결하기
엑셀과 설치된 외부 애드인 사이의 충돌이 런타임 오류 1004를 발생시킬 수 있다고 앞서서 알려드렸습니다. 이 충돌은 버전의 비호환성 혹은 기능의 중복으로 인해 발생합니다. 엑셀에서 오류 1004는 발생시키는 흔한 외부 애드인 중 하나는 GWXL97.XLA 입니다. 따라서 애드인 파일을 삭제하고 오류가 해결되는지 확인하셔야 합니다. 아래의 단계를 따르시면 됩니다.
- 시작 버튼을 우 클릭하고 파일 탐색기를 엽니다.
- “빠른 액세스” 섹션에서 C:\Program Files\MS Office\Office\XLSTART 로 갑니다.
-
GWXL97.XLA 파일을 찾아보세요. 이 파일을 우 클릭하고 삭제 옵션을 선택합니다.
- 컴퓨터를 재시작하고 엑셀을 엽니다. 오류가 나타나는 매크로를 실행해서 문제가 해결되었는지 확인해보세요.
문제가 해결되지 않았다면 휴지통에서 삭제된 파일을 복구하시면 됩니다.
해결법 4. 엑셀 서식 파일을 생성해서 런타임 오류 1004 해결하기
가끔씩 손상됐거나 오작동하는 엑셀 워크북으로 인해 마이크로소프트 VBA 런타임 오류 1004가 나타나기도 합니다. 이를 해결하려면, 문제가 있는 엑셀 워크북과 같은 템플릿을 이용해서 새로운 엑셀 워크북을 생성하세요. 다음으로, 손상된 워크북을 새로운 것으로 교체하고 매크로와 연결합니다.
다음은 새 엑셀 서식 파일을 생성하는 과정입니다.
마이크로 엑셀을 열고 파일 > 새로 만들기로 간다음 빈 워크시트를 생성합니다.
- 하나의 워크 시트를 제외하고 빈 워크 시트에 있는 기본 워크 시트를 모두 삭제합니다.
- 워크시트를 이전 오류가 발생한 워크시트대로 포맷합니다. 이전 워크시트에서 데이터를 복사하고 새 워크시트로 붙여넣기해서 매크로가 참조된 셀, 범위, 대상을 찾게 합니다.
-
파일 > 다른 이름으로 저장 으로 간 다음 파일 유형을 엑셀 서식 파일으로 선택합니다.
- 파일이 저장되고 나면, 매크로를 새 엑셀파일로 연결해야합니다. “Add Type:=path\filename” 코드를 이용해서 매크로와 새 템플릿을 연결하세요. 경로와 파일명을 새로운 워크북의 경로 및 파일명으로 바꿔적으세요.
해결법 5. VBA 프로젝트 대상 모델에 신뢰된 접근 활성화하기
엑셀 런타임 오류 1004를 해결하는 또 다른 방법은 VBA 프로젝트 대상 모델에 신뢰할 수 있는 접근을 활성화하는 것입니다. 이렇게 하시면 됩니다 :
- 엑셀 프로그램을 열고 좌측 상단의 “파일”을 클릭 한 다음 “옵션”을 선택합니다.
- 왼쪽 사이드 바에서 “보안 센터”를 선택한 다음 보안 센터 설정을 엽니다 :
-
매크로 설정을 클릭하고 “VBA 프로젝트 개체 모델에 안전하게 액세스 할 수 있음” 옵션을 체크합니다. 다음으로 OK를 클릭해서 변경 사항을 적용합니다.
해결법 6. 워크시트 보호를 해제해서 런타임 오류 1004 해결하기
보호 모드에서 매크로와 연결된 워크 시트를 입력할 때 엑셀이 매크로가 데이터를 수정하려고 하고 시트에 새 데이터를 추가하려고 한다면 런타임 오류 1004를 표시할 수도 있습니다. 이럴 경우, 매크로를 실행하기 전에 워크시트의 보호를 해제해야 합니다.
다음은 엑셀 워크북 보호를 해제하는 단계들입니다.
- 시트 탭에서 보호된 워크 시트로 갑니다.
-
워크시트를 우 클릭하고 메뉴에서 시트 보호 옵션을 클릭한 후에 시트 보호 해제합니다.
- 워크시트가 암호로 보호되어 있으면, 엑셀이 확인을 위해 암호를 입력하라고 할 것입니다.
- 매크로를 실행해서 오류가 해결됐는지 확인하세요. 필요하다면, 매크로가 작업을 완료하고 난 뒤 워크시트를 다시 보호하세요.
해결법 7. 엑셀을 업데이트, 재설치 혹은 복구하기
매크로 생성을 위해 VBA 코드를 다운로드했는데 VBA 런타임 오류 1004가 나타난다면, 엑셀 버전과의 호환성 문제로 인한 것일 수 있습니다. 이를 해결하려면, 마이크로소프트 오피스를 최신 버전으로 업데이트해서 최적의 호환성을 유지하고 런타임 오류를 피하세요. 업데이트하고 나서도 런타임 오류 1004가 계속 나타난다면, 엑셀 재설치 혹은 복구를 고려해보세요.
- 시작 메뉴에서 제어판을 엽니다.
- 프로그램 및 기능 옵션을 더블 클릭합니다.
- 설치된 앱 목록에서 마이크로소프트 오피스로 간 다음 우 클릭합니다.
-
제거 옵션을 선택해서 현재 혹은 최신 버전을 재설치하시면 됩니다.
현재 버전을 복구하신다면, 변경 옵션을 선택합니다. 화면의 설명을 따르세요.
- 엑셀을 재설치 혹은 복원하고 나면, 기존 엑셀 파일에서 매크로를 실행해서 오류가 다시 발생하는지 확인하시면 됩니다.
파트 3. 엑셀 VBA 1004 런타임 오류 해결을 위한 최고의 방법
런타임 오류 1004를 해결하기 위해 모든 방법들을 시도해 봤는데도 효과가 없다면 문제가 엑셀 파일 자체에 있는 것일 수도 있습니다. 매크로와 연결된 엑셀 파일이 손상되었다면 요청된 셀이나 범위에 접근할 수 없으므로 런타임 오류를 표시하는 것이죠. 이 문제를 해결하려면, 4DDiG File Repair와 같은 전문적인 파일 복원 프로그램을 이용해서 손상된 엑셀 파일을 복원해 보세요.
이 프로그램은 모든 유형의 오피스 파일 손상 문제를 해결하기 위해 설계되었습니다. 손상의 정도와 관계없이 이 프로그램은 빠르고 향상된 복원을 이용해서 파일을 정상적인 상태로 되돌려주죠.
다음은 4DDiG File Repair를 시중의 최고의 복구 프로그램으로 만들어준 기능들입낟.
- 직관적인 인터페이스를 제공하고 몇번의 클릭만으로 손상된 엑셀 파일을 복원할 수 있습니다.
- 손상된 엑셀 파일을 불러올 수 있는 다양한 저장 장치를 지원합니다.
- XLSX 및 XLSM과 같은 모든 다양한 엑셀 파일 포맷을 지원합니다.
- 가장 빠르고 높은 파일 복원률을 자랑합니다.
- 안전한 작업과 파일 보호를 보장합니다.
다음은 4DDiG File Repair를 이용해서 런타임 오류 1004를 해결하는 방법입니다.
-
컴퓨터에서 4DDiG File Repair를 다운로드 및 설치합니다. 프로그램 실행 후 왼쪽 패널에서 파일 복원 옵션을 클릭하세요.
-
문서 추가를 클릭해서 저장 장치의 오류가 있는 엑셀을 불러옵니다. 파일을 드래그 앤 드롭할 수도 있습니다.
-
모두 복구 버튼을 클릭해서 복원 작업을 시작합니다. 4DDiG File Repair가 엑셀 파일을 스캔 및 분석한 다음 그에 따라 복구를 진행할 것입니다.
-
복구 작업이 끝나고 나면, 파일을 미리보기 할 수 있습니다. 복구된 엑셀 파일을 선택하고 저장 버튼을 클릭해서 복원된 파일을 저장 장치에 저장하세요.
다음 으로 VBA 코드를 실행해서 복원된 파일에서 매크로를 실행하시면 되고 이렇게하면 오류가 해결될 것입니다.
마무리 말
엑셀에서 VBA 코드 및 매크로를 다루신다면, 악명높은 런타임 오류 1004를 마주하실 수도 있습니다. 이 오류 1004는 이 오류를 발생시킨 원인에 따라 다른 메시지를 나타내죠. 저희는 VBA에서 1004 오류를 해결할 모든 솔루션들을 소개해 드렸습니다. 엑셀 파일이 손상되었다면, 런타임 오류 1004는 피할 수 없죠. 저희는 4DDiG File Repair를 이용해서 몇번의 클릭만으로 손상된 엑셀 파일을 바로 복구할 것을 추천드립니다.