2016-10-11 54 views
0

我在受密碼保護的Word文檔中有一組6個表。每個表都有一個標題行,後面至少有一個數據行。第二個(及後續)行的第6列有一個下拉式表單字段。每個表格上方都有一個按鈕,允許用戶在表格中添加一行。當他們這樣做時,第6列包含另一個下拉菜單。Word VBA重命名下拉式表單字段?

用戶在下拉列表中選擇一個值並離開字段後,我需要根據選定的值爲該單元格着色。我可以設置OnExit值來運行我稱之爲「HighlightStatus」的宏。要獲取對單元格的引用更改,我正在使用

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

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

另一個問題是,當我向表中添加一行時,我需要將表單字段的名稱設置爲唯一的名稱,以便我可以引用剛剛更新的字段。但名稱屬性似乎是隻讀的。

我採取了另一種方法,基本上碰到了同一堵牆。更新字段後,我將遍歷所有表和所有行的代碼循環,並更新每行的第6列。問題在於屏幕向下滾動到文檔的末尾。爲了回到我所在的位置,我仍然需要唯一地引用正確的表單字段,如果字段沒有唯一的名稱,我不能這樣做。

回答

0

找到它。我正在追逐我的尾巴很長一段時間,但我發現這很有效。

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