【发布时间】:2015-10-28 21:40:30
【问题描述】:
我的人力资源团队询问我是否可以帮助他们为所有员工制作新名片。他们有一个 Publisher 文件,我正在尝试替换其中的文本。我已经编写了从 AD 和循环机制中提取信息的所有部分,但我无法让文本替换起作用。在使用 Find.Execute Method from Word. 之前,我在 Microsoft Word 中做过类似的事情,这很简单,因为我只是将我的参数提供给该方法并且它起作用了。
不过,这一次,我尝试使用FindReplace Object from Publisher.,我想我在滥用它,但我不确定如何使用。我的代码如下,任何输入将不胜感激。抱歉,如果这是一个愚蠢的问题,但我对 PowerShell 和 .NET 还是比较陌生。
$Document = "C:\Test\testcard.pub"
$Publisher = New-Object -comobject Publisher.Application
$OpenDoc = $Publisher.Open($Document)
$OpenDoc.Find.Clear()
$OpenDoc.Find.FindText = "Jane"
$OpenDoc.Find.ReplaceWithText = "John"
$OpenDoc.Find.ReplaceScope = $pbReplaceScopeAll
$OpenDoc.Find.Execute()
$OpenDoc.Save()
$OpenDoc.Close()
$Publisher.quit()
【问题讨论】:
-
$pbReplaceScopeAll来自哪里?它的价值是什么? -
它是 FindReplace 对象的成员。 msdn.microsoft.com/EN-US/library/office/ff939498.aspx 根据 Microsoft 的说法:“ReplaceScope 属性值可以是 Microsoft Publisher 类型库中声明的 PbReplaceScope 常量之一。”详细在这里:msdn.microsoft.com/EN-US/library/office/ff939038.aspx
标签: powershell ms-office ms-publisher