我一直在尝试从我的应用程序级别的插件中实现这一点,但有些人却无法做到这一点。以下是我在点击应用程序级别插件按钮时尝试实现的步骤:
在当前应用程序中打开现有的Excel文件。
做一些刷新。
刷新后关闭(使用Save = true)
再次打开工作簿
做其他一些事情。
在开始上述步骤之前,我使用了Application.ScreenUpdating = false和Application.EnableAlerts = false。但是发生的事情是,在第3步之后整个应用程序才关闭,然后在第5步之后再次出现。
我也试过这个:
在当前应用程序中打开现有的Excel文件。
做一些刷新。
在同一个应用程序中添加一个新的空白工作簿(附加步骤)
刷新后关闭(使用Save = true)
再次打开工作簿
做其他一些事情。
在这种情况下,应用程序也会从UI关闭并在步骤6之后出现。直到第3步,屏幕才冻结(这是想要的)
这实际上给用户带来了非常糟糕的体验。当我关闭并重新打开工作簿并冻结屏幕时,我想停止关闭UI,以便用户看到他在单击按钮时看到的相同UI。
无论如何都要为用户实现无缝体验(UI体验),以便用户看不到这种闪烁。任何方法都会有所帮助。
为什么我要这样做:我正在尝试将Powerpivot模型从一个工作簿复制到另一个工作簿。不知何故,这在手动完成时有效但如果通过VSTO完成则抛出错误(模型损坏)。所以,我想通过代码复制后,如果我保存,关闭并打开工作簿,模型就可以了。如果对这个问题有更好的解决方案,那么它也适用于我。