首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Word填写ms-word VBA /最有效的智能导航

通过Word填写ms-word VBA /最有效的智能导航
EN

Stack Overflow用户
提问于 2012-08-16 13:34:03
回答 3查看 29.1K关注 0票数 9

摘要:我的公司向客户发送信件,并希望我写一个宏来填写在word文档中设置的不同文本表单字段,因为发送的不同信件之间的变化非常有限。我在excel中做过宏,但这是我第一次遇到ms-word宏。

问题:我很难通过ms-word找到有效的、智能的导航。我确实找到了关于向不同方向移动的这篇文章,它实际上与箭头键相同。希望能了解一下浏览word文档的最佳方法。例如,我应该循环移动到右边的1空间,直到找到有意义的东西,或者有更有效的方法吗?

问题:是否可以在变量中存储特定的表单位置,还是ms-word没有坐标系统?

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-16 16:50:02

在最新版本的Word - Content控件中,至少有三种类型的表单字段,即“遗留表单字段”和“ActiveX表单字段”。假设您正在处理Legacy表单字段,您应该能够使用书签名称索引FormFields集合,然后使用。

代码语言:javascript
复制
ActiveDocument.FormFields("Text1").Result = "mytextformfieldresult"

ActiveDocument.FormFields("DropDown1").Result = "mydropdownformfieldresult"

ActiveDocument.FormFields("Check1").Checkbox.Value = True
票数 7
EN

Stack Overflow用户

发布于 2012-08-16 16:25:05

要使用内容控件,必须确保设置了控件的Title。如果需要,也可以设置Tag。见快照

然后可以使用此代码更新内容控件或检索其值

代码语言:javascript
复制
Sub Sample()
    Dim cc As ContentControl

    For Each cc In ActiveDocument.ContentControls
        If cc.Title = "MyTextBox1" Then
            cc.Range.Text = "Hello World!"
            Exit For
        End If
    Next cc
End Sub

当您运行代码时,它是这样的

要获取控件的文本,可以使用Debug.Print cc.Range.text

票数 13
EN

Stack Overflow用户

发布于 2012-08-16 13:56:41

您应该能够在您需要访问的文档中的不同位置创建书签。在现代词中,这是在“插入”选项卡上,在“链接”组中。然后,您可以从VBA访问书签,并使用以下代码将文本插入其中:

代码语言:javascript
复制
ActiveDocument.Bookmarks("myBookmark").Range.InsertBefore "Inserted Text"

这个MVP站点有更多关于这项技术的数据。此外,MSDN还有一些关于书签对象的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11988327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档