調用Word的查找替換命令FindExecute需要哪些參數?
首先說解決方法:代碼1加上find.Wrap = 1 即可,代碼2為Excute函數添加關鍵字參數Wrap=1即可。以下詳細解釋:Find對象相當于一般文本編輯中的查找/替換對話框。回想一下我們平時用查找/替換時的情景,當我們把光標放在文檔中間時,當搜索到文檔結束時,查找/替換對話框可能會詢問你是否要重頭開始搜索。也就是說查找/替換的查找功能是按順序,有起點,有方向的,還有一個更重要的Wrap屬性,它規定了從起點按順序查找結束后的處理動作。1.查找起點就是你的文檔當前插入光標的位置。2.查找方向就是從當前起點開始順序向前搜索還是向后搜索,查找方向由Find對象的Forward屬性設定,Forward = True表示從當前位置按順序向前搜索,向前搜索是默認值;Forward = False表示向后搜索。3.Wrap屬性規定了從起點按順序查找結束后的處理動作。查找結束指從查找起點按順序查找到了文檔結尾(Forward=True時)或者從查找起點按順序查找到的文檔開頭處(Forward=False時)。要記住的是查找是按順序的,如果查找起點不是從文檔開頭開始或者文檔末尾開始,一次查找結束后文檔中肯定有一部分沒有被查找到,沒被查找的部分怎么辦呢?這就由Wrap屬性規定了,它有三個值,在VBA中每個值都有與之對應的常量:
wdFindStop:值為0,即查找結束就結束了,剩下的不管了,這是默認值。很有可能你的文檔的當前插入光標放到了文檔末尾,所以無法替換。
wdFindContinue:值為1,即查找結束后,繼續搜索查找剩余沒有被查找的部分,這相當于再一次進行查找。
wdFindAsk:值為2,即查找結束后,它會彈出對話框,詢問是否要繼續搜索剩余沒有被查找的部分,由用戶決定是否再一次查找。
在Python處理中,將Find的Wrap屬性設為1,及將Wrap屬性設為wdFindContinue,實現無遺漏查找替換。
正好這兩天也在搞用Python處理MS Word,總結一下,希望對你有幫助。
參考:
Find 對象
WdFindWrap Enumeration (Microsoft.Office.Interop.Word)