Vba 允许无效输入的Excel验证列表

Vba 允许无效输入的Excel验证列表,vba,dropdownbox,Vba,Dropdownbox,我有一个工作表,其中有几个不同的验证列表,在不同的工作表上使用命名范围。我意识到使用带有空格的区域的单元格仍然允许用户输入他们想要的任何内容。如果定义的范围内没有空白,则会弹出正常的Excel错误消息。有人知道为什么会这样吗 例: 这两种类型的验证列表都是默认设置,具有“忽略空白”、“单元格内”下拉列表和选中的错误警报 我的一些列表之间有空格,但我仍然希望限制用户只选择下拉列表提供的选项 更新: 我尝试取消选中忽略空格,但这导致的一个小问题是,现在用户无法按Backspace键清除单元格。他们必

我有一个工作表,其中有几个不同的验证列表,在不同的工作表上使用命名范围。我意识到使用带有空格的区域的单元格仍然允许用户输入他们想要的任何内容。如果定义的范围内没有空白,则会弹出正常的Excel错误消息。有人知道为什么会这样吗

例:

这两种类型的验证列表都是默认设置,具有“忽略空白”、“单元格内”下拉列表和选中的错误警报

我的一些列表之间有空格,但我仍然希望限制用户只选择下拉列表提供的选项

更新:

我尝试取消选中忽略空格,但这导致的一个小问题是,现在用户无法按Backspace键清除单元格。他们必须实际选择下拉列表中的一个空白行。< /P> 我发现了另一个可能只针对我的代码而非示例的问题:

-如果单元格中已选择选项

-用户试图通过退格删除单元格,弹出Excel错误消息

-如果我单击“重试”并再次单击下拉列表,我将得到以下3个选项:


-该错误来自“工作表更改”子项,尽管其中有错误处理程序,但仍会发生该错误。

您需要在“数据验证”对话框中取消选中“忽略空白”选项

然后,当用户尝试输入数据时,Excel将给出错误消息,即使数据验证使用的命名区域中有空单元格


@您得到的应用程序或对象定义错误取决于代码。这可能是另一个问题的一部分。请在单独的电子表格上单独测试此问题当您具有上面答案中所示的数据验证设置时,允许用户按delete键清除cellSee示例工作簿此处您是对的,我指的是退格。我猜这两个是不相等的?他们不是。按backspace键将使单元格进入编辑模式,然后按enter键将触发数据验证。如果一个单元格像这样启用了数据验证,则需要使用delete键清除该单元格。或者,如果你想使用backspace,那么你需要在列表中有一个空白单元格,也就是通过艰难的方式发现同样的错误。。。数据验证列表中的空白单元格将使整个验证无效/无阻塞。