표준 VBA 기능에 대한 "프로젝트 또는 라이브러리를 찾을 수 없음"


80

그래서 내 PC에서 다른 사람의 엑셀 앱을 실행해야하는데 날짜, 형식, 16 진수, 중간 등과 같은 표준 기능에서 "프로젝트 또는 라이브러리를 찾을 수 없습니다"라는 메시지가 표시됩니다.

일부 연구에 따르면 이러한 함수 앞에 "VBA"가 붙습니다. "VBA.Date"에서와 같이 잘 작동합니다.

웹 페이지는 내 시스템의 프로젝트 참조와 관련이 있다고 제안하지만 개발자 시스템에서는 괜찮아 야합니다. 나는 이것을 다른 사람들로부터 얼마 동안 다루게 될 것이며 이러한 응용 프로그램을 다른 많은 사람들에게 배포 할 것이므로 수정해야 할 Excel 설정의 문제점 또는 변경해야 할 사항을 이해해야합니다. xls 파일을 사용하여 다양한 시스템에서 실행됩니다. 모든 사람이 "VBA"를 사용하지 않도록하고 싶습니다. 하지만 이상적인 해결책이 없다면 그게 우리가해야 할 일이라고 생각합니다.

  • "VBA"는 어떻게 만듭니 까? 내 프로젝트 속성 / 참조 / 등에 암시 적입니까?

-아담


한 버전의 Excel에서 개발하고 다른 버전을 사용하는 사용자에게 배포하고 있습니까?
Russ Cam

그럴 수도 있습니다. 개발자가 어떤 버전을 사용하고 있는지 모르겠습니다. 내가 확인 할게요.
Adam Davis


vba로 많은 함수를 접두사로 지정해야했습니다. 잃어버린 도서관을 찾기 전에
kztd

Excel 온라인 (Office 365)에서 파일을 열고 새 파일 이름으로 저장해보십시오. 이것은 나를 위해 일했습니다!
Sean McCarthy

답변:


64

완전히 다른 라이브러리에 대한 참조가 누락 된 경우 표준 함수에서 오류를 보았습니다.

VBA 편집기에서 메뉴에서 컴파일 명령을 시작한 다음 참조 대화 상자를 확인하여 누락 된 항목이 있는지 확인하고 이러한 라이브러리를 추가해보십시오.

일반적으로 전체 VBA 코드를 컴파일 한 다음 배포하기 전에 문서를 저장하는 것이 좋습니다.


4
나는 동의한다. 누락 된 참조는 MISSING으로 명확하게 표시됩니다. 귀하의 경우에는 나중에 바인딩하거나 이전 라이브러리를 선택할 수있는 최신 버전의 Excel 라이브러리라고 생각합니다. 코드 컴파일이 참조 누락에 도움이 될 것이라고 생각하지 않습니다.
Fionnuala

흠. VBAproject 암호에 대한 요청을 받고 있습니다. 줄거리가 두꺼워집니다.
Adam Davis

1
원래 개발자를 찾을 시간입니다.
Toby Allen

나도이 문제가 있었지만 다소 독특한 시나리오에 있다고 덧붙이고 싶었습니다. 일부 시스템에는 모든 DLL (이 경우 Acrobat Distiller 포함)이 있고 일부는 그렇지 않습니다. 나는 여전히 그것을 사용하지 않는 매크로를 실행하기 위해 Acrobat DLL이없는 컴퓨터가 필요했기 때문에 VBA에 의지했습니다. 이러한 기능에 대한 네임 스페이스 추가. 이것은 문제를 해결하고 두 시나리오 모두에서 작동했습니다.
Oliver Gray

나는 MISSING으로 표시된 참조가 하나도없는 동일한 문제를 만났다는 것을 지적하고 싶었습니다. 해결 방법을 찾지 못했지만 임시 해결책은 다음과 같습니다. VBE에서 참조 대화 상자를 열고 아무것도 건드리지 마십시오. 확인을 클릭하면 VBA 프로젝트가 정상으로 돌아갑니다.

32

나는 같은 문제가 있었다. 이것은 나를 위해 일했습니다.

  • VB에서 도구»참조로 이동
  • 라이브러리 "Crystal Analysis Common Controls 1.0"의 선택을 취소하십시오. 또는 도서관.
  • 다음 5 개의 참조를 남겨주세요.
    1. Visual Basic For Applications (VBA 언어를 정의하는 라이브러리입니다.)
    2. Microsoft Excel Object Library (Excel의 모든 요소를 ​​정의합니다.)
    3. OLE 자동화 (문서 연결 및 포함, 다른 응용 프로그램의 자동화 및 외부 세계와 통신하는 데 사용하는 COM 시스템의 "배관"유형을 지정합니다.)
    4. Microsoft Office (명령 모음 및 명령 모음 컨트롤과 같은 모든 Office 프로그램에 공통적 인 사항을 정의합니다.)
    5. Microsoft Forms 2.0 사용자 양식을 사용하는 경우 필요합니다. 이 라이브러리는 사용자 양식 및 양식에 배치 할 수있는 컨트롤과 같은 것을 정의합니다.
  • 그런 다음 저장하십시오.

내 경우에는 해당 매크로에서 사용되지 않았지만 스프레드 시트의 다른 곳에서 사용 된 "MicroSoft MapPoint 19.0 Object Library"를 선택 취소해야했습니다.
ELW

2
내 Excel 2010 컴퓨터에는 있지만 Excel 2013이 설치된 랩톱에는있는 "Microsoft Windows Common Controls 6.0 (SP4)"이 있습니다. 또한 사용중인 것 같습니다 ( "컨트롤 또는 참조를 제거 할 수 없습니다. in use "를 선택 해제하면) 사용중인 항목을 찾아서 제거해야합니다.
Rich

[수정 : 위 말했다해야한다 " 하지 노트북에 ..."] 작동 어디 판명이 하나의 시스템에서 프로젝트 참조를 제거 할 수 없습니다. 이제 프로그래밍 방식으로 제거하려고 시도했습니다 (.VBProject.References 사용, 반복 및 제거를 위해 잘못된 항목 제거 호출). "런타임 오류 '-2147319779 (8002801d)': Object library not 라이브러리가없는 컴퓨터에 등록됨 "메시지 가 표시되고 MSComctlLib 라이브러리 있는 컴퓨터에서"런타임 오류 '57101': 기본 참조를 제거 할 수 없습니다 "라는 메시지 나타납니다. Grrrr.
Rich

15

이 정확한 문제를 경험 한 결과 사용자 컴퓨터에서 내가 의존하는 라이브러리 중 하나가 참조 대화 상자에서 "MISSING"으로 표시되어 있음을 발견했습니다. 이 경우 내 버전의 Office 2007에서 사용할 수 있지만 클라이언트 데스크톱에서는 사용할 수없는 일부 Office 글꼴 라이브러리였습니다.

당신이 얻는 오류는 완전한 붉은 청어입니다 (divo가 지적한대로).

다행히도 라이브러리에서 아무것도 사용하지 않았기 때문에 XLA 참조에서 완전히 제거 할 수있었습니다. 나는 divo의 제안 된 모범 사례의 확장은 모든 대상 Office 버전에서 XLA를 테스트하는 것입니다 (어쨌든 나쁜 생각은 아닙니다).


10

제 경우에는 함수가 VBA 라이브러리 (내 참조에 있음)와 Microsoft Office Object Library (또한 존재)에 정의 된대로 AMBIGUOUS였습니다. Microsoft Office Object Library를 제거했습니다. VBA를 사용할 필요가 없습니다. 접두사.


6

제 경우에는 Visual Basic 창에서 "참조"를 열 수도 없습니다. Office 365를 다시 설치하려고 시도했지만 작동하지 않았습니다. 마지막으로 "Trust Center"설정에서 매크로 비활성화를 시도했습니다. Excel을 다시 시작했을 때 매크로가 비활성화되었다는 경고 메시지가 표시되고 "사용"을 클릭했을 때 더 이상 오류 메시지가 표시되지 않습니다.

나중에 "Trust Center"설정에서 모든 매크로를 다시 활성화했는데 오류 메시지가 나타나지 않았습니다!

이봐, 다른 것이 당신에게 효과가 없다면 위의 것을 시도하십시오. 그것은 나를 위해 일했습니다! :)

업데이트 : 문제가 반환되었으며 이것이 두 번째로 "수정"한 방법입니다 .

Excel 온라인 에서 통합 문서를 열고 (Office 365, 브라우저에서 매크로를 지원하지 않음) 새 파일 이름 (여전히 .xlsm 파일 확장명 사용)으로 저장하고 데스크톱 소프트웨어에서 다시 열었습니다. 효과가있었습니다.


3
Excel 온라인에서 통합 문서를 여는 것이 지금까지 저에게 효과가 있었던 유일한 해결책이며 안전 모드에서 Office 재설치 / 복구, 컴퓨터 다시 시작 및기도에 이르기까지 모든 것을 시도했다고 믿습니다. 매크로 사용 .xlsm통합 문서에서 겉보기에 무작위로 발생하는 것처럼 보이지만 매우 드물지만 일화 적으로 더 복잡한 파일에서 더 자주 발생하는 것처럼 보이 므로 여기에서 원인과 결과를 더 많이 이해하고 싶습니다 . VBA 라이브러리의 일부 요소가 손상받을 수 있습니다 보이지만, Excel에서 온라인으로 문제를 해결할 수 있다는 사실은 다른 방법이 없습니다 동안 홀수
Mako212

1
이 매우 성가신 버그에 대해 지금까지 찾은 가장 쉬운 수정입니다. 내 생각에 그것은 모두 동일한 Excel 주 버전을 가지고 있지만 동일한 부 업데이트 (예 : 버전 2101 빌드 13628.20000 -vs- 버전 2101 빌드 13624.20002)가 아닌 공동 작성 사용자 (Excel 파일은 Sharepoint에 있음)에서 비롯된 것입니다. 그게 될까요? 지난 몇 달 동안 Microsoft에서 OfficeUploadCenter를 제거한 이후로 훨씬 더 빈번하게 발생하는이 문제 (이제 많은 동기화 오류가 발생 함)에 대해 자세히 알아보고 싶습니다.
flo5783

0

제 경우에는 집 (Visio 없음)에서 내 사무실 컴퓨터 (Visio가 설치된 상태)에서 수행 한 작업을 확인하고있었습니다. VBA가 단순한 기본 기능에 중단 된 것처럼 보였지만 문제는 Visio 라이브러리에 대한 참조가 여전히 활성화되어 있다는 것입니다.


0

AVAYA / CMS 프로그램 파일에 대한 참조를 찾았습니까? 완전히 무작위로, 이것은 MS Access에 있었으며 AVAYA와 관련이 없습니다. 내 PC에 AVAYA가 있고 다른 사람은 그렇지 않으므로 이것이 내 컴퓨터에서 작동하고 다른 컴퓨터에서는 작동하지 않는 이유를 설명하지만 Access가 AVAYA에 연결되는 방법은 설명하지 않습니다. 어쨌든-방금 참조를 확인 취소했으며 문제가 해결 된 것 같습니다.


0

모든 참조가 괜찮은 경우에도 접두사 문제로 인해 컴파일 오류가 발생합니다.

다음과 같이 모든 모듈의 모든 '내장 VBA 함수'에 대한 찾기 및 바꾸기 하위를 만드는 것은 어떻습니까?

코드 모듈의 텍스트 교체

예를 들어 "= Date"는 "= VBA.Date"로 대체됩니다.

예를 들어 "Date ("는 "VBA.Date (")로 대체됩니다.

( "dim t As Date"또는 "mydate"제외)

찾기 및 바꾸기를위한 모든 vba 함수는 여기에 작성됩니다.

vba 기능 목록


-1

이 오류는 여러 XLSM 파일에서 약 2 년 동안 켜졌다 꺼졌습니다 (파일에 문제가없는 것이 발생했을 때 가장 짜증이납니다!-분리 된 Excel 프로세스가 문제의 일부라고 생각합니다).

내가 찾은 가장 효율적인 솔루션은 oletools https://github.com/decalage2/oletools/wiki/Install와 함께 Python을 사용 하고 모든 모듈의 VBA 코드를 추출하고 텍스트 파일에 저장하는 것입니다.

그런 다음 파일 이름을 zip 파일 (만약 백업!)로 변경하고이 zip 파일을 열고 xl / vbaProject.bin 파일을 삭제합니다. XLSX로 다시 이름을 바꾸면 괜찮을 것입니다.

저장된 VBA 코드를 복사합니다 (줄 바꿈, 주석 및 기타 항목을 정리해야합니다. 누락 된 라이브러리도 추가해야 함).

이것은 다른 방법이 없을 때 저를 구했습니다.

YMMV.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.