0
我,我真的不能用Python腳本2個星期前我就發現#1和完美的工作,直到昨天瞭解的問題(與以不變應萬變!)Find.Execute不包工作Win32com
我收到了一份文件,希望找到一個單詞列表並用其他單詞替換它們。這裏是我的代碼:
import win32com.client
word = win32com.client.DispatchEx("Word.Application")
word.Visible = True
word.DisplayAlerts = False
word.Documents.Open(path)
FromTo = {"<#TITLE#>":"The title I want", "<#COMPANY#>":"My Company"}
for From in FromTo.keys():
word.Selection.Find.Text = From
word.Selection.Find.Replacement.Text = FromTo[From]
word.Selection.Find.Execute(Replace=2, Forward=True)
word.ActiveDocument.SaveAs(path)
的事情是,打開文檔時,發現文本正確選擇,但沒有任何反應的代碼來排隊word.Selection.Find.Execute(Replace=2, Forward=True)
。之後通常保存文檔,並且沒有錯誤消息。
有人知道爲什麼這段代碼不起作用嗎?很奇怪,相同的代碼在兩週前工作,現在不做任何事情。
感謝您的幫助!
您的代碼也不適用於我。檢查[this](http://stackoverflow.com/questions/1045628/can-i-use-win32-com-to-replace-text-inside-a-word-document)問題 - 第二個答案由'bernie '代碼有效(對我來說),如果我用你的'執行'行替換(必要時替換變量)。我會留給你找出爲什麼:) – SiHa
另外,使用'from From,To inTo.items():',並用'To替換'FromTo [From]'將會更加Pythonic '。更需要使用小寫變量名稱,但要注意'from'是一個關鍵字。 – SiHa