繁体   English   中英

Excel:阻止打开外部工作簿?

[英]Excel: Prevent external workbook open?

在我的VSTO Excel加载项中,有时我有一个打开的(模态)表单来选择一些参数以对活动工作表中的某些操作进行操作。 用户单击“确定”后,对话框将关闭,并且将触发长时间运行的服务器操作。 之后,将更新活动工作表中的数据。

现在我的问题是:我们的一位测试人员做了一个测试,就是他打开模式对话框,然后从外部打开另一个工作簿(通过Windows7任务栏中的跳转列表)。 在他单击“确定”离开模态对话框之前,什么都没有发生。 然后,Excel打开另一个工作簿。 但是后来我丢失了活动工作表,无法正常继续。

仅通过具有该模式对话框,就可以防止任何“内部”打开操作。

但是有可能阻止“外部”工作簿打开吗???

不,没有办法将其捕获,但是您可以确保电子表格是唯一可操作的电子表格,无论打开了什么其他电子表格

如果set另一个变量set为工作簿的名称,则可以使用该名称,并且打开其他工作表也没关系

例如代替

Activeworkbook.Sheet("Data").Range("B7") = 7

您保存工作簿信息:

Dim DataWorkbook as workbook
Set DataWorkbook = ActiveWorkbook

以后,您可以使用该功能,它将在预期的工作簿上运行

DataWorkbook.Sheet("Data").Range("B7") = 7

我发现只有一种(粗略的)方式可以阻止打开外部工作簿:

如果我进入工作表选项卡的编辑模式(不在其单元格中),则将忽略打开的外部工作簿。 通过资源管理器的打开操作双击Excel文件,并且当我离开工作表标签编辑模式时也不会恢复。

我不知道我是否真的应该使用此“功能”来防止发生外部打开操作...:-/

我只想分享。 对不起,自我回答,约尔格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM