Excel文件使隐藏实例可见

时间:2017-03-10 09:22:40

标签: excel vb.net

在我的VB.Net Excel VSTO插件中,我在后台打开一堆excel文件以从中检索信息。用户不应该看到这个,也不应该与此互动。

这是通过创建Excel的新实例并使用以下代码加载文件来完成的:

Dim loadExcelInstance as Excel.Application = New Excel.Application()
loadExcelInstance.Visible = False
loadExcelInstance.Workbooks.Open("Path\To\File", False, True)

最后一部分是确保文件以只读方式打开。所有文件都在Excel中标记为Shared

会发生什么,是文件在后台读取,应该是这样,直到发生这种情况:

当加载一个特定文件时,loadExcelInstance.Visible属性会突然变为True,此工作簿以及所有其他工作簿在可见后打开。

在此可见窗口中,将显示工作簿本身,但通常在Excel中可见的功能区不会显示。

昨天,这发生在一本工作簿上。将此工作簿中的所有数据复制到新工作簿,以相同名称保存并删除旧工作簿后,行为恢复正常。

今天,这种情况发生在两本工作簿中。

有谁知道为什么会这样,以及我如何阻止它?

编辑:要在单独的测试代码中显示会发生什么:

    Dim goodTestInstance = New Excel.Application()
    goodTestInstance.Visible = False
    goodTestInstance.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
    Dim badTestInstance = New Excel.Application()
    badTestInstance.Visible = False
    badTestInstance.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable

    goodTestInstance.Workbooks.Open("Path\To\GoodFile.xlsm", False, True)
    badTestInstance.Workbooks.Open("Path\To\BadFile.xlsm", False, True)

当代码到达好文件的开头时,它会在后台打开,因为它应该是。当代码到达坏文件的开头时,它会打开,但没有功能区。

1 个答案:

答案 0 :(得分:0)

这更像是一个评论,但它是一张照片。无论如何,你可以检查一下这个文件中是否有这样的东西:

enter image description here