0

所有这些都是在 VB.NET 中使用 Excel 14.0 互操作服务完成的

我已经黔驴技穷了。在批处理运行过程中,我不断收到来自 Windows 和 excel 的提示。

我的程序接收一个带有批处理记录的工作簿,然后对每个批处理记录运行模拟,然后将结果写回 excel 文件。

步骤:

  1. 打开工作簿
  2. 检查工作簿是否已被另一个程序使用。
    1. 如果它正在使用中。我们尝试关闭工作簿。然后我们等待一段时间再试一次。
    2. 如果工作簿没有被使用,我们继续。
  3. 获取内容
  4. 将记录标记为正在处理
  5. 保存并关闭文件。
  6. 处理记录。
  7. 执行上述相同的过程以打开工作簿。
  8. 将结果保存到工作簿。
  9. 关闭工作簿。
  10. 循环这些过程,直到所有记录都被模拟。

好的,可能出现的问题:工作簿已在使用中,或者两个程序正在尝试同时与保存工作簿进行交互。

现在好了,我遇到的问题。当工作簿同时被两个程序交互时。提示将显示该文件当前正在使用中。

另一个我无法解释的问题是excel会显示一个提示,说明文件现在可以使用读写、通知、取消选项进行修改。

我需要找到一种以编程方式处理这些提示的方法。如果有人能指出我正确的方向,我将非常感激。

4

1 回答 1

0

您可以通过设置阻止提示出现:

Dim xlApp As Excel.Application = New Excel.Application
xlApp.DisplayEvents = False

但是我还没有找到一种方法来真正“捕捉”提示并做一些有用的事情。我注意到,如果 Interop 通常无法获取文件,那么它会抛出异常。该异常很少包含任何区分实际错误的方法,但有时您可以根据当时可能发生的情况来解决它。

于 2012-11-10T06:36:02.707 回答