Saya sedang menulis add-in VSTO untuk Excel dan saya perhatikan bahwa jika saya mengunci lembar dan melindunginya dengan kata sandi (jadi hanya add-in saya yang dapat menulisnya tetapi pengguna dapat melihatnya), jika pengguna mencoba mengedit lembar tersebut mereka mendapatkan popup "Lembar ini terkunci". Jika saat perintah tersebut masih menunggu masukan pengguna, add-in mencoba menulis ke lembar, Excel mengalami crash. Tindakan menulis ke sheet melibatkan membuka proteksinya, menulis data, lalu menguncinya kembali. Add-in menangkap data dari sumber eksternal melalui port serial sehingga data dapat ditulis kapan saja.
Untuk membuat ulang: 1. Kunci lembar dengan add-in. 2. Pengguna mencoba mengedit isi lembar 3. Pengguna diberitahu bahwa mereka tidak dapat mengedit isi lembar karena terkunci. 4. Data masuk dalam port serial dan add-in mencoba membuka kunci, menulis data, dan mengunci lembar sebelum pengguna sempat menerima perintah yang diberikan. 5. Excel menghapuskan debu.
Ada saran? Saya bermain-main dengan gagasan untuk mempertahankan lembar "master" yang tersembunyi dan lembar yang terlihat dan hanya menggunakan rumus excel atau rentang bernama untuk mereferensikan lembar yang tersembunyi. Namun hal ini akan terbuka terhadap pengeditan dan potensi kerusakan data oleh pengguna. Data harus sedapat mungkin tidak dapat diedit.
Pembaruan: Saya akan puas dengan menangkap COMException sehingga tidak mematikan Excel, namun "catch (Exception ex)" yang umum sepertinya tidak membantu.