Excel 용 VSTO 추가 기능을 작성하고 있으며 시트를 잠그고 암호로 보호하면 추가 기능 만이 사용자에게 쓸 수 있습니다. 그것을 볼 수 있습니다), 사용자가 시트를 편집하려고하면 "이 시트가 잠겨 있습니다"팝업이 나타납니다. 해당 프롬프트가 여전히 보류중인 사용자 입력 인 경우 추가 기능이 시트에 쓰려고 시도하면 Excel이 충돌합니다. 시트에 쓰는 작업에는 보호 해제, 데이터 쓰기, 다시 잠그는 작업이 포함됩니다. 추가 기능은 언제든지 데이터를 쓸 수 있도록 직렬 포트를 통해 외부 소스에서 데이터를 캡처합니다.팝업이 Excel의 전경에 있는지 확인하십시오.
다시 만들기 : 1. 추가 기능을 사용하여 시트를 잠급니다. 2. 사용자가 시트 내용 편집을 시도합니다. 3. 시트가 잠겨 있기 때문에 시트 내용을 편집 할 수 없다는 메시지가 나타납니다. 4. 데이터가 직렬 포트에 들어오고 추가 기능은 사용자가 던져진 프롬프트를 확인하기 전에 시트의 잠금을 해제하고 데이터를 쓰고 시트를 잠그려고 시도합니다. 5. Excel 바이트에 먼지가 있습니다.
제안 사항? 나는 숨겨진 "마스터"시트와 보이는 시트를 유지하고 숨겨진 시트를 참조하기 위해 Excel 공식 또는 명명 된 범위를 사용하는 아이디어를 가지고 놀고있었습니다. 그러나 이는 사용자가 편집 및 잠재적 인 데이터 손상에 노출 될 수 있습니다. 데이터는 가능한 한 편집 불가능해야합니다.
업데이트 : 나는 COMException을 잡는 것에 만족할 것이므로 Excel을 죽이지는 못하지만 일반적인 "catch (Exception ex)"는 도움이되지 않는다.
팝업 창을 제거합니다 사용자가 어떤 식 으로든 폼을 계속 편집하려고 시도하면 COMException을 발생시키지 않고 코드를 계속 실행하기 전에 사용자가 "확인"을 클릭해야하는 오류 상자가 표시됩니다. –