我试图在EXCEL中对电话号码进行数据验证。模式应仅包含数字和虚线。至少应该有一个短划线。如果没有VBA,我怎么能搞这个?
答案 0 :(得分:1)
您可以通过数据验证来做到这一点。
在“公式”字段中使用以下内容(假设您范围内的第一个单元格为A1
)
= ISNUMBER(SUBSTITUTE(A1,“-”,“”)* 1)
SUBSTITUTE
函数将查看单元格A1
中的值,其中每个破折号均不替换(即删除)。
剩余的字符乘以1。如果字符仅包含数字(0-9),则此操作返回一个数字。如果有破折号以外的字母或符号,则会返回错误。
最后,如果以上结果为数字,则ISNUMBER
函数将返回TRUE
。如果结果不是包含错误的数字,则返回FALSE
。
要允许其他字符,请包括一系列嵌套的SUBSTITUTE
函数,每个字符一个。
允许数字(数字),划线和空格
例如123-456-7890或123 456 7890
=ISNUMBER( SUBSTITUTE( SUBSTITUTE(A1,"-",""), " ", "") * 1)
允许数字(数字),破折号,空格和括号
例如(123)456-7890
=ISNUMBER( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE(A1,"-",""), " ", ""), "(", ""), ")", "") * 1)
答案 1 :(得分:0)
你所要求的比你需要的要复杂得多,而且可能比你想象的要复杂得多。
而不是要求用户输入这种特定格式的电话号码(如果他们在区号之前添加括号怎么办?数字块之间的空格怎么样?那些用短划线输入6个数字的人怎么样?20个数字怎么样?和20个破折号?),考虑只对特定数字的条目应用特定的格式规则。如果这样做,您的数据验证将只是“必须输入整数”,格式将自动显示它的外观。
已经有一种特殊的“电话号码”格式,因此您甚至不需要应用任何特殊规则来实现这一目标。
答案 2 :(得分:0)
自定义数字格式是否足够? ###-###-####
将输入限制为整数。