创建一个启用宏的文档,该文档首先具有工作的宏,但是随后在插入按钮时停止工作。以下说明。
代码:
Sub UpdateOptions()
Dim bProtected As Boolean
'Unprotect the file
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=""
End If
Select Case ActiveDocument.FormFields("Bookmark0").Result
Case "Bookmark1"
ActiveDocument.Bookmarks("Bookmark1").Select
SendKeys "%{down}" 'Displays choices in drop-down field
Case "Bookmark2"
ActiveDocument.Bookmarks("Bookmark2").Select
SendKeys "%{down}" 'Displays choices in drop-down field
Case "Bookmark3"
ActiveDocument.Bookmarks("Bookmark3").Select
SendKeys "%{down}" 'Displays choices in drop-down field
End Select
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, _
NoReset:=True, _
Password:=""
End If
End Sub
设置Word文档的步骤:
插入旧版下拉列表字段
在下拉菜单中,键入:Enter,Enter(插入两个段落)
插入第二个旧式下拉列表字段
在下拉菜单中,键入:Enter,Enter(插入两个段落)
插入第三个旧版下拉列表字段
在下拉菜单中,键入:Enter,Enter(插入两个段落)
此时您的文档应如下所示:
书签0 [下拉列表]
书签1 [下拉列表]
书签2 [下拉列表]
书签3 [下拉列表]
测试:
按钮冲突
您的文档应与上面相同,但现在有一个按钮:
书签0 [下拉列表]
书签1 [下拉列表]
书签2 [下拉列表]
书签3 [下拉列表]
[按钮]
测试按钮冲突:
我也在以下链接上发布了此问题(可在此处下载文件:: http://www.vbaexpress.com/forum/showthread.php?65092-Odd-behavior-when-Command-Buttons-are-present
http://www.msofficeforums.com/word-vba/42422-odd-behavior-when-command-buttons-present.html
eileenslounge.com/viewtopic.php?f=26&t=32411
答案 0 :(得分:0)
找不到奇怪行为的原因。
作为一种解决方法,我只是在想要的书签之前选择了一个书签,如下面的代码所示。
使用命令按钮,一切正常。
Sub UpdateOptions()
Dim bProtected As Boolean
'Unprotect the file
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=""
End If
Select Case ActiveDocument.FormFields("Bookmark0").Result
Case "Bookmark1"
ActiveDocument.Bookmarks("Bookmark0").Select
SendKeys "%{down}" 'Displays choices in drop-down field
Case "Bookmark2"
ActiveDocument.Bookmarks("Bookmark1").Select
SendKeys "%{down}" 'Displays choices in drop-down field
Case "Bookmark3"
ActiveDocument.Bookmarks("Bookmark2").Select
SendKeys "%{down}" 'Displays choices in drop-down field
End Select
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, _
NoReset:=True, _
Password:=""
End If
End Sub
感谢所有接受此主题的人。
Raudel