防止在数字格式的列中输入文本

防止在数字格式的列中输入文本

如何阻止用户在数字单元格或列中输入文本。有些用户坚持写 3+2 而不是 5。如何阻止这种情况?

请不要问我他们为什么这样做。这是一个历史悠久的传统

答案1

使用数据验证。

选择要控制的单元格。然后在“数据”选项卡中选择“数据验证”。

然后在允许中选择自定义并输入公式:

=ISNUMBER(A1)

A1您要放置数据验证的单元格在哪里。

在此处输入图片描述

现在,当他们尝试放置时,2+3他们会收到错误。

在此处输入图片描述

并且必须将其更改为数字才能被接受。

答案2

数据验证仍然有几个潜在的缺陷。在这种情况下可能不会困扰你,但需要注意以下几点:

  1. 他们仍然可以输入公式,只要结果为数字。因此,这=3+2是一个有效的条目。为什么这不是问题?因为显示的结果看起来像直接输入“5”,所以也许“谁在乎”适用。但如果在单元格中有一个“常数”(Excel 术语),而不是像公式这样的奇怪的东西,对于根据单元格条目进行工作很重要,那么您仍然会遇到问题。

  2. 他们仍然可以粘贴单元格,消除任何数据验证,因此其执行将不复存在。如果“传统”意味着他们是不遵守规则的 #*$$%&#,那么你会遇到麻烦,因为他们会想方设法打败你,相信我。这是战争,请采取相应行动。如果“传统”意味着他们有这样的输入实际原因,那么考虑一下这些原因可能是什么。例如,如果他们的数据以无组织的方式输入,学习“3”应该在那里输入,然后稍后,另一个“2”需要添加,他们可能在遇到“3”时输入了它,并觉得附加“+2”是更准确的方式来记录他们后来学到的“2”。毕竟,让计算机做算术不会出错,而自己做算术会导致愚蠢的错误,而且还会让人怀疑“我后来加了那个 2 吗?或者……我想我没有,现在就加进去吧。”如果时间足够久远,那么它可能来自纸和铅笔时代,当时任何有正确思维的人都会这样做。在这种情况下,有两种想法:

    a. 您应该为他们提供一个输入区域,他们可以在其中执行工作流程所需的操作。这不是针对您,而是满足用户需求。然后将公式放在此处,将这些加起来。(对于确切的示例,使用 Excel 版本 4 的宏命令EVALUATE(),但将其放在命名区域名称中,作为其“引用”。但如果还存在“3, 2”之类的条目,则没有帮助。)

    b. 请记住,如果这对我的工作流程很重要,我会添加一张工作表并随心所欲地进行操作,然后将条目列复制到我的数据区域,无论我使用哪种形式。好吧,老实说,我会将它们转换为简单的数字,然后将它们放入其中,因为我不是我之前提到的 #*$$% 之一。但不是每个人都会这样做,也不是每个人都能做到。这可能涵盖了很多人,所以...

我怀疑“传统”是指工作流程需要这种输入的部分。所以也许可以考虑解决这个问题。

除了那些知道如何在不使用宏的情况下启动文件的人之外,VBA 是您的首选解决方案。当有人按下 Enter 键或在编辑所选单元格后单击其他地方时,它可以触发宏。这些宏可以强制执行您的需求,并且可能非常有效,通过提出一个他们必须回答的问题,例如“您的输入是‘3+2’。这是否意味着总数为 5 还是有其他含义?”几年回答这些无休止的问题可能会让即使是最脾气暴躁的人也能解决问题。还应该提供后续问题,例如“哦,那是什么意思?”,“嗯,我不明白。‘不,你这个傻瓜,‘这意味着 3+2!’’是什么意思?”“我不明白。‘3,2,7’ 是什么意思?”等等。

但是想想 VBA,如果“传统”更多地意味着“我做我想做的事!”(谢谢卡特曼)而不是“嗯,我必须以这种方式进入事物是有充分理由的。”

相关内容