摘要:我的公司向客户发送信件,并希望我写一个宏来填写在word文档中设置的不同文本表单字段,因为发送的不同信件之间的变化非常有限。我在excel中做过宏,但这是我第一次遇到ms-word宏。
问题:我很难通过ms-word找到有效的、智能的导航。我确实找到了关于向不同方向移动的这篇文章,它实际上与箭头键相同。希望能了解一下浏览word文档的最佳方法。例如,我应该循环移动到右边的1空间,直到找到有意义的东西,或者有更有效的方法吗?
问题:是否可以在变量中存储特定的表单位置,还是ms-word没有坐标系统?
提前感谢!
发布于 2012-08-16 16:50:02
在最新版本的Word - Content控件中,至少有三种类型的表单字段,即“遗留表单字段”和“ActiveX表单字段”。假设您正在处理Legacy表单字段,您应该能够使用书签名称索引FormFields集合,然后使用。
ActiveDocument.FormFields("Text1").Result = "mytextformfieldresult"
ActiveDocument.FormFields("DropDown1").Result = "mydropdownformfieldresult"
ActiveDocument.FormFields("Check1").Checkbox.Value = True发布于 2012-08-16 16:25:05
要使用内容控件,必须确保设置了控件的Title。如果需要,也可以设置Tag。见快照

然后可以使用此代码更新内容控件或检索其值
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
发布于 2012-08-16 13:56:41
您应该能够在您需要访问的文档中的不同位置创建书签。在现代词中,这是在“插入”选项卡上,在“链接”组中。然后,您可以从VBA访问书签,并使用以下代码将文本插入其中:
ActiveDocument.Bookmarks("myBookmark").Range.InsertBefore "Inserted Text"这个MVP站点有更多关于这项技术的数据。此外,MSDN还有一些关于书签对象的数据。
https://stackoverflow.com/questions/11988327
复制相似问题