经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » VB.Net » 查看文章
excel身份证验证(附带防止粘贴导致校验失效的函数)
来源:cnblogs  作者:虫呙牛  时间:2019/1/9 9:33:41  对本文有异议

一、检验函数

=IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A1))----18位校验

二、防止粘贴导致校验失效的函数

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim rng As Range
  3. Dim c As String
  4. For Each rng In Target
  5. If Not rng.Validation.Value Then
  6. Application.Undo
  7. Dim msg As String
  8. msg = "粘贴的数据不符合校验规则:位置在第" & rng.Row & "行,第" & getColumnName(rng.column) & "列,请仔细检查"
  9. MsgBox prompt:=msg, Title:="输入提示"
  10. Exit For
  11. End If
  12. Next
  13. End Sub
  14. Private Function getColumnName(column As Integer) As String
  15. Dim alphabet(26) As String
  16. alphabet(0) = "A"
  17. alphabet(1) = "B"
  18. alphabet(2) = "C"
  19. alphabet(3) = "D"
  20. alphabet(4) = "E"
  21. alphabet(5) = "F"
  22. alphabet(6) = "G"
  23. alphabet(7) = "H"
  24. alphabet(8) = "I"
  25. alphabet(9) = "J"
  26. alphabet(10) = "K"
  27. alphabet(11) = "L"
  28. alphabet(12) = "M"
  29. alphabet(13) = "N"
  30. alphabet(14) = "O"
  31. alphabet(15) = "P"
  32. alphabet(16) = "Q"
  33. alphabet(17) = "R"
  34. alphabet(18) = "S"
  35. alphabet(19) = "T"
  36. alphabet(20) = "U"
  37. alphabet(21) = "V"
  38. alphabet(22) = "W"
  39. alphabet(23) = "X"
  40. alphabet(24) = "Y"
  41. alphabet(25) = "Z"
  42. If (column < 27) Then
  43. getColumnName = alphabet(column - 1)
  44. Else
  45. Dim i, j As Integer
  46. i = column \ 26
  47. j = column Mod 26
  48. If (i < 26) Then
  49. getColumnName = alphabet(i - 1) & alphabet(j - 1)
  50. Else
  51. getColumnName = column
  52. End If
  53. End If
  54. End Function

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号