Tag: 屏幕

如何停止自动打开Excel工作簿闪烁?

我正在使用工作簿path的GetObject来创build一个新的或抓住现有的Excel实例。 如果抓取现有的用户创build的实例,应用程序窗口是可见的; 如果问题的工作簿path已closures,则会打开并隐藏,但不会在屏幕上闪烁。 Application.ScreenUpdating没有帮助。 我不认为我可以使用Win32Api调用LockWindowUpdate,因为我不知道我得到或创build文件之前打开。 是否有一些其他的VBA友好的方式(即WinAPI)冻结屏幕足够长的时间来获取对象? 编辑 :只是为了澄清,因为第一个答案build议使用应用程序对象…这些是重现此行为的步骤。 1.打开Excel – 确保只运行一个实例 – 保存并closures默认工作簿。 Excel窗口现在可见但“空”2.打开Powerpoint或Word,插入一个模块,添加下面的代码 Public Sub Open_SomeWorkbook() Dim MyObj As Object Set MyObj = GetObject("C:\temp\MyFlickerbook.xlsx") 'uncomment the next line to see the workbook again' 'MyObj.Parent.Windows(MyObj.Name).Visible = True' 'here's how you work with the application object… after the fact' Debug.Print MyObj.Parent.Version End Sub 注意闪烁,因为Excel在现有实例中打开文件,然后隐藏它,因为它是自动化的 但是请注意,在闪烁完成之前,没有应用程序对象可以使用。 这就是为什么我正在寻找一些更大的API方法来“冻结”屏幕。

在Excel中以编程方式隐藏活动工作簿

我正在开发一个基于工作簿的VBA项目。 该代码打开一个新的工作簿,并调用一个外部的API下载并插入一堆数据在这个新的工作簿的多个工作表。 我停用屏幕更新( Application.Screenupdating = False ),所以最初屏幕保持专注于原始工作簿,而API在后台下载其他工作簿中的数据。 但是,一旦API插入数据,屏幕切换到新的工作簿。 我怎样才能防止这种情况发生? 谢谢!