在我的VSTO Excel加载项中我有时会有一个开放(模态)表单来选择一些参数来操作活动工作表中的某些操作。用户点击“确定”后,关闭对话框并触发长时间运行的服务器操作。之后,活动工作表中的数据将更新。
现在我的问题: 我们的一位测试人员进行了测试,他打开了模态对话框,然后在外部打开另一个工作簿(通过Windows7任务栏中的跳转列表)。直到他点击“确定”离开模态对话框才会发生任何事情。然后Excel打开另一个工作簿。但后来我丢失了我的活动工作表,无法正常继续。
只需使用此模态对话框即可防止任何“内部”打开操作。
但是可以阻止“外部”工作簿打开???
答案 0 :(得分:0)
不,没有办法诱捕它,但你可以确保你的电子表格是唯一一个操作的电子表格,无论其他什么是打开的
如果set
另一个变量指向工作簿的名称,那么您可以使用该名称,如果他们打开另一个工作表就不重要
e.g。而不是
Activeworkbook.Sheet("Data").Range("B7") = 7
您保存工作簿信息:
Dim DataWorkbook as workbook
Set DataWorkbook = ActiveWorkbook
稍后,您可以使用该崇敬,它将在预期的工作簿上运行
DataWorkbook.Sheet("Data").Range("B7") = 7
答案 1 :(得分:0)
我发现只有一种(原始的)防止外部工作簿打开的方法:
如果我进入工作表标签的编辑模式(不在其单元格中),则忽略外部工作簿打开。通过资源管理器打开操作双击Excel文件,当我离开工作表选项卡编辑模式时也不会恢复。
我不知道我是否真的应该使用这个“功能”来阻止外部开放操作......: - /
我只是想分享一下。对不起自我回答,Jörg