如果选择了错误的项目,请选择组合框

时间:2015-05-27 02:59:07

标签: vba ms-word word-vba

我有一份包含多个(旧版)表格的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,我希望它在"(选择一个)"被选中。奖励积分,如果它停留在当前字段并自动提取列表选择。

1 个答案:

答案 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