我正试图写一个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要么工作.
2条答案
按热度按时间ztyzrc3y1#
当你有一个遗留的文本表单字段时,书签实际上是用来标识该字段的。如果你试图写替换书签中的文本(比如说),你可能会得到错误6028 -“该范围无法删除”。
我不太了解PowerShell,不检查就能做到这一点,但等效的方法是
字符串
所以我猜powershell是这样的
型
hfyxw5xn2#
万一Word文档没有书签,您也可以根据表单字段的索引设置值
字符串