excel - 确定 Popup 是否位于 Excel 前台

标签 excel vsto office-interop

我正在为 Excel 编写 VSTO 加载项,我注意到,如果我锁定工作表并使用密码保护它(因此只有我的加载项可以写入它,但用户可以查看它),如果用户尝试编辑工作表时,他们收到“此工作表已锁定”弹出窗口。如果该提示仍在等待用户输入,则加载项尝试写入工作表,Excel 将崩溃。写入工作表的操作包括取消对工作表的保护、写入数据,然后再次锁定它。该插件通过串行端口从外部源捕获数据,以便可以随时写入数据。

重新创建: 1. 使用插件锁定工作表。 2. 用户尝试编辑工作表内容 3. 提示用户无法编辑工作表的内容,因为工作表已锁定。 4. 数据进入串行端口,并且在用户有机会确认抛出的提示之前,加载项会尝试解锁、写入数据并锁定工作表。 5.Excel字节灰尘。

有什么建议吗?我正在考虑维护隐藏的“主”工作表和可见工作表,并仅使用 Excel 公式或命名范围来引用隐藏工作表。然而,这可能会受到用户的编辑和潜在的数据损坏。数据必须尽可能不可编辑。

更新:我对捕获 COMException 感到满意,这样它就不会杀死 excel,但是一般的“catch (Exception ex)”似乎没有帮助。

最佳答案

在 VBA 中,您可以使用 UserInterFaceOnly:=True 保护工作表。这意味着代码仍然可以写入工作表。 From this link看起来 VSTO 插件也是如此。

关于excel - 确定 Popup 是否位于 Excel 前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661945/

相关文章:

c# - VSTO Word 后保存事件

c# - 如何从字节数组创建 Microsoft.Office.Interop.Word.Document 对象,而不将其保存到磁盘?

excel - 如何在VLOOKUP公式中显示数字的小数点?

excel - 使用 vba 在特定文本下插入新行

c# - 将数据从 datagridview 显示到 reportviewer C#

c# - ftp上传太大

python - 使用 Datanitro 的交互式工作表

.net - “System.__ComObject”不包含 .WithComCleanup() 的定义

c# - 如何将 Excel 2010 (14) PIA 添加到 .NE 3.5 项目?

c# - Selection.Find.Font.Position 允许十进制值