Word VBA重命名下拉表单字段?

时间:2016-10-11 19:18:52

标签: excel vba form-fields

我在受密码保护的Word文档中有一组6个表。每个表都有一个标题行,后跟至少一个数据行。第二行(及后续行)的第6列中包含下拉表单字段。每个表上方都有一个按钮,允许用户向表中添加一行。当他们这样做时,第6列包含另一个下拉列表。

用户在下拉列表中选择一个值并离开该字段后,我需要根据所选值为该单元格着色。我可以设置OnExit值来运行我称之为“HighlightStatus”的宏。要获取要更改的单元格的引用,我正在使用

Dim ff As Word.FormField
ThisDocument.Unprotect strSheetPassword
Set ff = ThisDocument.FormFields(Selection.Bookmarks(1).Name)

如何引用包含此表单字段的单元格?

另一个问题是,当我向表中添加一行时,我需要将表单字段的名称设置为唯一的,以便我可以引用刚刚更新的字段。但Name属性似乎是只读的。

我采取了另一种方法,基本上是在同一堵墙上。更新字段后,我将代码循环遍历所有表和所有行,并更新每行的第6列。问题是屏幕向下滚动到文档的末尾。为了回到原来的位置,我仍然需要唯一地引用正确的表单字段,如果该字段没有唯一的名称,我就无法做到。

1 个答案:

答案 0 :(得分:0)

找到它。我正在追逐我的尾巴很长一段时间,但我发现这很有效。

ThisDocument.Unprotect strSheetPassword
Selection.Shading.BackgroundPatternColor = wdColorLightGreen
ThisDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=strSheetPassword