VB 操作WORD函數(shù)實例 說明,用VB操作WORD,以下源碼第一次操作完全正常,正常打開,正常替換,正常退出。進程中并沒有留下windword的進程,但第二次繼續(xù)操作時就出問題,運行到ReplaceWord()就出現(xiàn)462錯誤,關(guān)閉程序重新開始又正常。
'=============打開word============== Dim wordApp As Word.Application Dim wordDoc As Word.Document Function OpenWord(FileName) '打開指定word文檔 Set wordApp =New Word.Application Set wordDoc = wordApp.Documents.Open(FileName) wordApp.Visible = False Set wordDoc = wordApp.Documents.Open(FileName) End Function ‘============替換關(guān)鍵字=========== '==================另存為=================== Function SaveAsWord(DiskStr, NameStr) '===================清除對象============ 使用 Nothing 關(guān)鍵字將對象變量從實際對象中分離開來,但這并不意味著實際對象的消失。舉一個例子 ,新建兩個窗體,在 Form1 上放一個按鈕,再在其 Click 事件中寫入: 運行后,點擊 Form1 上的按鈕,你會看到,F(xiàn)orm2 好端端的在那里擺著,并沒有消失,但是,如果你再點一次,會發(fā)現(xiàn),又出現(xiàn)了一個 Form2 再回到你的代碼,同理,
Set wordDoc = Nothing '清除文件實例 Set wordApp = Nothing '清除WORD實例 并沒有關(guān)閉 Word,你可以把 wordApp.Visible = False 改成wordApp.Visible = True 再試試你的代碼,會發(fā)現(xiàn),調(diào)用OpenWord后,出現(xiàn)了一個Word窗口 調(diào)用CloseWord后,Word 并未發(fā)生變化 但是,如果此時你調(diào)用SaveAsWord或ReplaceWord,會發(fā)生錯誤, 原因是 WordDoc 與 WordApp 現(xiàn)在已經(jīng)沒有指向已經(jīng)打開的那個 Word 文檔 與 Word 程序. 但是,如果此時你再調(diào)用 OpenWord,你就可以看到為什么調(diào)用SaveAsWord或ReplaceWord,會發(fā)生錯誤,此時是因為文檔已經(jīng)被打開了,為了關(guān)閉 Word,你可以使用下面的代碼: wordDoc.Close '關(guān)閉 Word 文檔 wordApp.Quit '退出 Word 但由于你的 WordApp 是隱藏的,所以最好使用下面的代碼 如果你在 Word 程序 中同時打開數(shù)個 Word 文檔,那么可以使用 |
|