在Word(VBA)

时间:2017-02-16 16:56:12

标签: vba ms-word word-vba form-fields

所以我试图在Word中创建一个条件下拉列表。我使用了Legacy下拉表单字段,有多个选项。

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

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

  • 下拉工作正常,退出时会运行宏
  • 案例陈述已写出
  • case语句的结果是变量(字符串类型),我们称之为StringVar
  • 可以使用ActiveDocument.FormFields(“TextBox”)提取文本表单字段的文本(默认文本)。结果

然而,我所知道的是如何用case语句的字符串变量text替换已存在的Text Form字段中的默认文本。

我试过了 ActiveDocument.FormFields(“TextBox”)。Result = StringVar

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

1 个答案:

答案 0 :(得分:1)

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

为了做到这一点,我没有保护文件(ActiveDocument.Unprotect密码:=“”):

ActiveDocument.Content.InsertAfter Text:=(“这是我的文字”)

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

原来,

ActiveDocument.FormFields(“TextBox”)。Result = StringVar

开始工作了。但是文件必须受保护(填写表格)才能替换文本表单字段中的字符串。否则,即使结果确实已更新,也不会显示任何内容。想象一下。