【问题标题】:Populate PDF Combo Box Via VBA通过 VBA 填充 PDF 组合框
【发布时间】:2018-09-15 14:19:38
【问题描述】:

我有以下代码来填充 PDF 文档中的组合框。据我所知,代码是正确的,根据Acrobat Forms API Reference

但是代码在 PopulateListOrComboBox 调用中失败并出现此错误:

对象“IField”的方法“PopulateListOrComboBox”失败

Dim acroApp As Acrobat.acroApp
Set acroApp = New Acrobat.acroApp

Dim myForm As Acrobat.AcroAVDoc
Set myForm = New Acrobat.AcroAVDoc

Dim bOK As Boolean
bOK = myForm.Open("C:\Users\sholtzman\downloads\wordFormTest.pdf", "temp")

Dim theRealForm As AFORMAUTLib.AFormApp
Set theRealForm = New AFORMAUTLib.AFormApp

Dim pdField As AFORMAUTLib.Field
Set pdField = theRealForm.Fields.Add("triaCoverage", "combobox", 0, 10, 20, 100, 200)

Dim items(2) As String
items(0) = " "
items(1) = "Accept"
items(2) = "Reject"

pdField.PopulateListOrComboBox items

此外,我也测试了这段代码以尝试填充它,但它也失败并出现错误:

自动化错误未指定错误

Dim myPDForm As Acrobat.AcroPDDoc
Set myPDForm = myForm.GetPDDoc

Dim jso As Object
Set jso = myPDForm.GetJSObject

jso.getField("triaCoverage").setItems(1) = " "

最后,当我添加组合框后保存并关闭文档时,我可以进入 并手动设置列表值。有什么想法可以通过代码实现吗?

【问题讨论】:

  • 我是第一次阅读有关 PDF COM 的内容,所以只是猜测。我看到arrItemsVariant& 类型有些关联:可能你必须声明Dim items As Variant 并填充items = Array(" ", "Accept", "Reject")
  • @DisplayName - 谢谢。我仔细检查了你的建议,我收到了一个 Invalid Procedure Call or Argument Variant 类型的错误。
  • 抱歉,实在是帮不上忙了
  • 可能是THIS可以帮助你
  • @DisplayName - 有趣的发现。谢谢你。我可以试试看。

标签: vba excel pdf combobox acrobat


【解决方案1】:

我做了更多研究,刚刚通过替换该行找到了一个答案:

jso.getField("triaCoverage").setItems(1) = " "

jso.getField("triaCoverage").setItems(items)

但是,如果可能的话,我更喜欢使用 PopulateListOrComboBox 方法,所以我会暂时不回答这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多