저는 상대적인 VBA 초보자이며 10 초에서 10 분 사이의 아무 것도 실행할 수있는 상당히 복잡한 매크로를 디자인합니다. 보이지 않는 다른 Excel 인스턴스에서 대부분의 작업이 Dim appDatabaseInstance = New Excel.Application
에 의해 생성됩니다. 코드 실행 과정에서 사용되는 많은 함수와 서브 루틴이 있습니다. 반 예측 가능한 것이 잘못 될 때마다 appDatabaseInstance.Quit
이 호출되도록 최선을 다했으나, 제어 할 수없는 한 가지가 있습니다. 사용자.예기치 않은 포스트 매크로 가비지 수집을 허용하는 명명 된 Excel.Application 객체를 구현하는 방법
특히 사용자가 프로그램이 충돌하여 이탈을 결정하면 VBA가 실행을 중단하고 중단이 발생하여 내 가비지 수집 루틴 (내가 생각하는)이 발생하지 않습니다.
예를 들어 예측 가능한 방식으로 인스턴스 이름을 지정하고 새 인스턴스를 만들기 전에 기존 인스턴스를 찾고 적절히 처리하려고하면 훨씬 행복해집니다. 그렇게하면 불행한 응용 프로그램 인스턴스가 열려 있어도 사용자가 프로그램과 관련된 다른 작업을 시도하자마자 닫히게됩니다 (그렇지 않으면 인스턴스가 너무 많아 문맥에서 너무 많은 두통을 일으키지 않습니다).
누구에게 의견이 있습니까?
사용자에게 진행률 표시 줄을 표시합니까? 그렇지 않다면 인내를 도울 것입니다. – brettdj
당분간은 아니지만 실제로 진행률을 얼마나 신뢰할 수 있는지를 100 % 확신 할 수는 없습니다. 작업의 대부분이 완료 될 때까지는 수행 할 수 없기 때문에 수행해야 할 작업의 수를 알 수 있습니다. 그건 내가 말했듯이, 초보자를 완료했다. – tobriand
범위를 예측할 수 없다면 분명히보고하기가 더 어렵습니다. ..... [Walkenbach의 진행률 표시 줄] (http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/)을 두 가지 모두에 사용했습니다. 내 addins (내 프로필 참조), 복제 마스터에서'EnableCancelKey'에 대해'xlDisable' 옵션을 사용했지만 사용자가 내 사용자 폼에서'Cancel'을 클릭하여 제어 된 종료에 도달했는지 정기적으로 확인합니다. – brettdj