数据有效性的公式可以先在工作表中测试,正确后,再在设置数据有效性性时使用。但两者还是有差别的。你这个公式是一个完整的以IF为基本函数的公式,得到的结果是数据(H6)或错误提示。而数据有效性的自定义公式中,要求得到的结果是true或false,也可以分别是大于0的数字(一般为1)或0,这里0等价于false,大于0的数字等价于true。
不知道你的数据有效性是要达到什么要求,但初步推测,用你公式中IF的第1参数做数据有效性的公式可能可以满足你的要求:
=AND(VALUE(LEN(H6))=18,VALUE(MID(H6,7,4))>1900,VALUE(MID(H6,11,2))>0,VALUE(MID(H6,11,2))<13,VALUE(MID(H6,13,2))>0,VALUE(MID(H6,13,2))<32)
Excel对设置数据有效性的单元格,在输入数据并确定(回车、tab、箭头移动等确定单元格输入完成的操作)时,检查输入的数据与设置的有效性进行比较,单元格中输入的数据代入有效性公式,得到的结果为ture(或大于0的数字)时,就符合有效性设置,而结果为false或0时,就提示输入错误,不能完成数据输入。