我有一份包含多个(旧版)表格的MS-Word 2013文档;一些文本框,一些组合框。所有组合框中的第一个列表项是"(选择一个)"让最终用户知道他们需要做出选择(我没有起草或设计这个文档,我刚刚被要求为它编写VBA代码)。因此,如果第一个选择未更改,我将每个编码为一个简单的VBA消息框,在退出时运行,例如:
Public factor1 As Integer
Sub MyFormFieldFactor1()
If ActiveDocument.FormFields("cbofactor1").Result = "(select one)" Then
MsgBox "You must select either Yes or No."
Exit Sub
End If
If ActiveDocument.FormFields("cbofactor1").Result = "Yes" Then
factor1 = 1
Else
factor1 = 0
End If
End Sub
当您在消息框中单击“确定”时,Word文档会自动转到下一个表单域。通过VBA,我希望它在"(选择一个)"被选中。奖励积分,如果它停留在当前字段并自动提取列表选择。
答案 0 :(得分:0)
这会起作用吗?
If ActiveDocument.FormFields("cbofactor1").Result = "(select one)" Then
MsgBox "You must select either Yes or No."
ActiveDocument.FormFields("cbofactor1").SetFocus()
Exit Sub
End If
您可以使用以下内容自动删除列表:
SendKeys "%{down}", True
DoEvents
完整代码:
If ActiveDocument.FormFields("cbofactor1").Result = "(select one)" Then
MsgBox "You must select either Yes or No."
ActiveDocument.FormFields("cbofactor1").SetFocus()
SendKeys "%{down}", True
DoEvents
Exit Sub
End If