2

操作系统:Microsoft Windows SP1(64 位)

办公套件:Microsoft Office 2010

.Net 框架:4.0

主题 : 运行 Excel 插件代码时,Microsoft 应用程序套件(Word、Outlook)在时间片内没有响应

详细信息:我们为 excel 应用程序编写了基于 VSTO(C#)的插件。该插件用于刷新当前工作表中的数据。

单击“刷新”按钮会发生以下事件步骤

•通过传递一些元数据来调用内部网络服务以下载文件

•文件被下载并存储在windows Temp 文件夹中。

• 执行VSTO 代码以使用剪贴板复制/粘贴将数据从下载的工作表复制到当前工作表。数据是逐行复制的。

在任何时候,剪贴板中都会有一行数据。此外,行数和列数因请求而异。

问题:虽然刷新功能按预期工作,但我们遇到了其他 Office 套件应用程序(Word、Outlook)的问题。

对于运行时间片刷新,所有 Office 应用程序套件都停止响应。

有人可以帮助解决这个问题吗?

4

1 回答 1

0

I think you can not control other office suites application. But what you can do is, try to decrease the time slice for refresh button By using different concept like

•A call is made to internal web service by passing some metadata to download a file

•File is downloaded and stored on windows Temp folder.

I don't know for above two point whether you have used separate thread for that or not? If not use separate thread for that.

You can also use some Optimization trick while copy pasting data from one sheet to another.

Here are some tricks to optimize vba / vsto code

http://tchhabhaiya.blogspot.in/2012/06/17-ways-to-optimize-vba-code-for-faster.html

I think below code will help a lot to you if you haven't used this.

Application.ScreenUpdating = False //To Turn Off at the start of code.
Application.ScreenUpdating = True //To Turn on at the end of the code.
于 2013-08-29T09:03:22.683 回答