2013-04-12 86 views
0

有沒有人知道爲什麼我每次運行在任務管理器中的單詞後臺進程都會繞過下一個循環?謝謝。運行程序後Word的多個實例

Try 
     For Each element In Raneeded 
      If Not String.IsNullOrEmpty(element) Then 
       Dim OpenRA = New Microsoft.Office.Interop.Word.Application 

       docname = d(CInt(element)) & ".docx" 
       OpenRA.Documents.Open(folderpath & docname) 

       OpenRA.Visible = False 
       Dim opened1 = OpenRA.ActiveDocument 

       Dim RAtable As Word.Table = opened1.Tables(1) 
       RAtable.Cell(1, 1).Range.Text = "Site Address: " & address 
       opened1.Close() 
      End If 
     Next 
    Catch ex As Exception 
     MsgBox(ex.Message & " Please contact your system Administrator, quoting these details.") 
    End Try 

回答

1

您關閉該文檔,但從來沒有關閉Word aplication OpenRA,要麼把它定義外循環,並在年底關閉,或關閉每一個當您關閉文檔

opened1.Save() 
OpenRA.Quit() 
+0

大謝謝,我對Office.Interop部分很新。僅供參考,.Close()命令不適用於Office Apps,它在沒有它的情況下正常工作 – Joe

+0

@Joe此代碼不釋放對象,並可能繼續打開Word實例。最安全的方法是將兩個對象都設爲null(opened1.Save()opened1 = Nothing OpenRA.Quit()和OpenRA = Nothing)。另外請記住,這些規則只適用於Word;例如,殺死Excel的所有實例比較困難(您需要對此進行一些研究)。 – varocarbas