【问题标题】:Insert/replace string in existing text form field in Word (VBA)在 Word (VBA) 中的现有文本表单字段中插入/替换字符串
【发布时间】:2017-07-05 22:23:07
【问题描述】:

所以我试图在 Word 中创建一个条件下拉菜单。我使用了具有多个选项的旧式下拉表单字段。

我想要发生的是当从下拉列表中选择其中一个选项时(然后我猜你必须使用 Tab 键才能输入它......),下面的旧文本表单字段,它有一个简单的默认文本,应该使用 case 语句中的新字符串填充。

我已经完成/开始工作的事情:

  • 下拉菜单正在运行,退出时会运行宏
  • 写出case语句
  • case语句的结果在一个变量(字符串类型)中,我们称之为StringVar
  • 可以用 ActiveDocument.FormFields("TextBox").Result 拉取文本表单域的文本(默认文本)

然而,我发现如何用 case 语句的字符串变量文本替换现有文本表单字段中的默认文本。

我试过了 ActiveDocument.FormFields("TextBox").Result = StringVar

但它不会更改文本表单字段内的任何内容。默认文本仍然存在。

【问题讨论】:

    标签: vba ms-word form-fields


    【解决方案1】:

    所以我可以在思考并被“哦,呃”的时刻击中后回答自己的问题。

    为了执行此操作,我已取消保护文档 (ActiveDocument.Unprotect Password:=""):

    ActiveDocument.Content.InsertAfter Text:=("This is my text")

    因为我想知道我是否抓住了正确的字符串。

    结果,

    ActiveDocument.FormFields("TextBox").Result = StringVar

    确实有效。但是该文件必须是 protected(填写表格)才能替换文本表单字段中的字符串。否则,即使结果确实已更新,也不会显示任何内容。好想啊。

    【讨论】:

      猜你喜欢
      • 2022-06-24
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2018-04-04
      • 2012-06-14
      • 1970-01-01
      相关资源
      最近更新 更多