【发布时间】:2016-01-29 21:00:52
【问题描述】:
我正在 Microsoft Word 中创建表单。我有几个“文本表单字段”,我想限制其中一些,以便用户只能输入数字。我不明白为什么微软在仍然允许输入任何值的情况下为您提供将“类型”更改为“数字”的选项。由于似乎是这种情况,因此我转向了 VBA。
我正在尝试在用户退出这些字段之一时运行宏,以确保输入有效。我宁愿不为要限制为数字的每个字段创建新宏。
我认为我的问题是我不知道如何获得当前字段的结果。我可以为每个字段创建不同的宏,并通过显式指定其名称来获得结果,但似乎存在更智能的方法。
这是我目前所拥有的。
Sub validateNumericFields()
'Check to see if the value in the current field is numeric
'If it is not, send a message to the user, and set value to default value
If IsNumeric(Selection.Fields(1).Result) = False Then
MsgBox "You must enter a valid number.", vbExclamation
Selection.Fields(1).Result = Selection.Fields(1).TextInput.Default
End If
End Sub
【问题讨论】:
-
在我们讨论您的问题之前,我们需要确保我们理解它。您似乎是在“混合和匹配”术语,这使得很难确定您拥有什么。 “用户表单”是一个 VBA 表单;它有“文本框控件”。 Word 文档可以作为表单进行保护,并具有“文本表单域”。你有后者而不是前者对吗?
-
是的,后者是正确的。我没有使用 VBA 创建输入字段。我已将“旧版文本表单域”插入到 Word 文档中,并将限制编辑,因此用户只能编辑表单域。
-
您使用的是哪个版本的 Word?当我将文本框表单字段的类型设置为数字时,它不会让我在其中输入文本。文本变为 0(零)。
-
我有 Word 2010。如果我使用 Tab 键导航到下一个字段,那么如果类型设置为数字,则文本将变为零。但是,如果我使用光标导航到备用字段,那么文本仍然存在。
-
您能否更具体地说明“使用我的光标”是什么意思?