2012-10-09 55 views
0

所有這一切都被VB.NET中使用Excel 14.0互操作服務也能收到Excel和Windows提示與互操作服務

我在我束手無策完成工作時。在批處理運行的中間,我不斷收到來自windows和excel的提示。

我有一個帶有批記錄的工作簿的程序,然後在每個批記錄上運行模擬,然後將結果寫回到Excel文件。

步驟:

  1. 打開工作簿
  2. 檢查,看是否工作簿已被另一程序使用。
    1. 如果它正在使用。我們嘗試關閉工作簿。然後我們再等一段時間再試。
    2. 如果工作簿沒有被使用,我們繼續。
  3. 獲取內容
  4. 標記記錄作爲被處理
  5. 保存並關閉文件。
  6. 處理記錄。
  7. 執行上述相同的過程來打開工作簿。
  8. 將結果保存到工作簿。
  9. 關閉工作簿。
  10. 循環這些過程,直到模擬完所有記錄。

確定可能發生的問題: 工作簿已在使用中,或者兩個程序試圖同時與保存工作簿進行交互。

現在好了,我有問題了。 當該工作簿被兩個程序同時交互時。提示符會顯示說文件當前正在使用中。

另一個我不能解釋的問題是excel會顯示一個提示,說現在文件已經準備好,可以通過讀寫,通知,取消等選項進行修改。

我需要找到一種方法來以編程方式處理這些提示。 如果有人能指出我朝着正確的方向,我會非常感激。

+0

您需要向我們展示一些您的代碼。特別針對步驟1至2.2。 – RBarryYoung

回答

0

您可以通過設置防止提示出現:

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

但我還沒有找到一種方法實際上是「抓」的提示,並做一些有用的東西。我注意到,如果Interop無法抓住一個文件,它往往會拋出一個異常。例外情況很少包含任何區分實際錯誤的方法,但有時您可以根據此時可能發生的情況進行處理。