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