我正在尝试编写一个 Powershell 脚本来编辑 Microsoft Office Word 2007 中的文本表单字段。它应该通过我之前配置的书签找到一个表单字段并将文本写入其中。我为测试目的而写入的默认文本是“某事”。这就是我到目前为止所拥有的:
$document = 'D:\Powershell\Test.docx'
$Word = New-Object -Com Word.Application
$Word.Visible = $True
$doc = $word.Documents.Open($document)
$text = "Hello"
$bookmark = "server1"
$doc.Bookmarks.Item($bookmark).Range.Text.Replace("Something", $text)
虽然它在控制台中工作,因为输出是:
FORMTEXT Hello
Word 仍然显示我之前手动插入的字符串。当我输入:
$doc.Bookmarks.Item($bookmark).Range.Text
输出是:
FORMTEXT Something
我已经尝试过:
$Word.ActiveDocument.Reload()
$Word.ActiveDocument.Fields.Update()
$doc.PrintPreview()
$doc.ClosePrintPreview()
$doc.Bookmarks.Item($bookmark).Range.Fields.Update()
但似乎没有任何效果。有人知道如何在该文本表单字段中永久写一些东西吗?或者,如果这更容易,我可以使用(丰富的)文本内容控件(似乎更新)。那些不使用书签,而是使用标签和标题。感谢您提前提供帮助。PS:它也不适用于 MS Word 2016。