gpt4 book ai didi

powershell - 使用Powershell在MS Word中编辑文本表单字段

转载 作者:行者123 更新时间:2023-12-02 23:26:07 25 4
gpt4 key购买 nike

我正在尝试编写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。

最佳答案

当您有旧式文本表单字段时,书签确实位于其中以标识该字段。如果尝试写替换VBA中的书签文本(例如),您可能会收到错误6028-“无法删除范围”。

我不知道Powershell是否足够好,如果不进行检查就可以做到这一点,但是等效的VBA将是

doc.FormFields($bookmark).Result = "Something"

所以我想PowerShell就像
$doc.FormFields.Item($bookmark).Result = "Something"

关于powershell - 使用Powershell在MS Word中编辑文本表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com