我正在使用C#.net编程,基本上我想让我的插件能够判断用户保存文件时是来自Excel本身还是来自“Visual Basic for Application”窗口。
有没有方法可以判断用户当前是否在“Microsoft Visual Basic for Application”中?
编辑: 我不知道这是否是完整的专业解决方案,但我发现 .Application.ActiveWindow.ActiveSheet == null 似乎有效。
我正在使用C#.net编程,基本上我想让我的插件能够判断用户保存文件时是来自Excel本身还是来自“Visual Basic for Application”窗口。
有没有方法可以判断用户当前是否在“Microsoft Visual Basic for Application”中?
编辑: 我不知道这是否是完整的专业解决方案,但我发现 .Application.ActiveWindow.ActiveSheet == null 似乎有效。
在错误发生时继续执行下一步操作
设置wbk为“我的文档.xls”
如果出现错误则跳过,否则执行下一步操作
如果wbk为空,则打开“我的文档.xls”
True/False
,以判断项目的VBE窗口是否已打开。我不确定C#的等效方法是什么,但您可以简单地检查工作簿的VBProject VB编辑器是否处于活动状态。Function IsVBEActive(wb as Workbook) As Boolean
Dim vbProj
Set vbProj = wb.vbProject
IsVBEActive <> vbProj.VBE.ActiveWindow Is Nothing
End Sub
注意:这需要启用对VB项目对象模型的信任访问: