使用 Powershell 在 Word 文档中选择下拉列表项

问题描述 投票:0回答:0

我正在开发一个 powershell 脚本,该脚本将 Word 文档作为 COM 对象打开并使用内容控件对其进行编辑。每个内容控件都由 Word 文档中分配给它的标题标识。我可以编辑文本框和复选框,但我不知道如何更改在 Word 文档的下拉列表中选择的项目。

这是我尝试过的代码示例,它成功更改了文本框和复选框,但不适用于下拉列表。我看到的所有文档似乎都是针对 VBA 的,所以我不知道如何使用 powershell 与下拉列表进行交互。这是我在 com 对象中查看内容控件具有哪些属性后的最佳猜测。

$filename = "C:\Path\File.docx"
$wordPg1 = New-Object -comobject Word.Application
$wordPg1.Visible = $False
$Page1Doc = $wordPg1.documents.open($filename)
$Page1Fields = $Page1Doc.ContentControls

           foreach($field in $Page1Fields)
           {
               switch ( $field.Title )
               {
                   # These two work
                   "Text Box"      { $field.Range.Text = "1234" }
                   "Check Box"     { $field.Checked = $TRUE }
                   # This one doesn't work
                   "Dropdown"      { $field.DropdownListEntries.Index = 2 }
               }
           }

$SaveAsFileName = "C:\Path\FileEdited.docx"
$Page1Doc.SaveAs([ref]$SaveAsFileName)

$Page1Doc.Close()
$wordPg1.Quit()
$null = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($wordPg1)

这给出了错误

异常设置“Index”:“在此对象上找不到属性‘Index’。验证该属性是否存在并且可以设置。”

powershell ms-word listbox
© www.soinside.com 2019 - 2024. All rights reserved.