Merle尝试使用Excel的“数据验证”功能来限制用户可以在单元格中选择的内容。当用户激活一个单元格时,他只希望回答是,否或不适用。他不希望用户能够离开该单元并将其留为空白(空)。 Merle设置了可接受值的列表(“是”,“否”和“不适用”),并且在设置“数据验证”时未选中“忽略空白”复选框。

问题在于,当有人激活单元格时,他们可能仍将其留空。 Excel唯一不允许此人将该单元格留空的方法是,如果他们开始编辑该单元格并在编辑后尝试将其留空。一旦选择了单元格,Merle希望用户绝对只能在他们选择“是”,“否”或“不适用”时离开该单元格。

数据验证本身无法解决这个问题。但是,有两种方法可以解决此问题。第一个想法是修改为用户提供的选项。例如,假设您添加了“提供答案”的第四个选择。然后,您可以将单元格中的值更改为相同的值并保存工作簿。当用户打开它时,该单元格包含“提供答案”,一旦选择了该单元格,便无法将其清空。他们将需要提供答案。

另一种选择是将宏与您设置的数据验证结合使用。最简单的方法是为每次工作表中的选择更改设置事件处理程序。如果单元格选择为C22(数据验证也应位于此处),则以下示例开始运行。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rng As Range     Set rng = Range("C22")

If Application.Intersect(Target, rng) Is Nothing Then         MsgBox "You must select the answer from the list"

End If End Sub

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(8767)适用于Microsoft Excel 97、2000、2002和2003。