本文主要是介绍Excel快速判断大量身份证性别,VBS代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
身份证判断性别的原理就是,身份证倒数第二位是单数表示是男的,单数是女的
可以用IF公式来判断,但是需要下拉,如果几百上千条数据还好,要是上万就不好拉取了,如果数据太多,可以用VBA代码判断
=IF(MOD(VALUE(MID(A1,17,1)),2)=0,"女","男")
原理:MID(A1,17,1) 可以提取出身份证号码的第17位数字,也就是倒数第二位。VALUE() 函数将这个字符转换为数值。MOD() 函数可以判断这个数字是否为偶数。如果是偶数,则判断为女性,否则为男性。
VBA代码
进入VBA界面
' 思路就是就是先获取身份证号码
' 然后判断是不是18位,不是18位表示无效,最后根据奇数还是偶数判断性别
Sub IdentifyGender()Dim lastRow As LongDim i As LongDim idNumber As StringDim secondLastDigit As Integer' 获取最后一行数据lastRow = Cells(Rows.Count, "A").End(xlUp).Row' 遍历每一行数据For i = 1 To lastRow' 获取身份证号码idNumber = CStr(Cells(i, "A").Value)' 判断身份证号码是否有效If Len(idNumber) = 18 Then' 获取倒数第二位数字secondLastDigit = CInt(Mid(idNumber, Len(idNumber) - 1, 1))' 判断性别If secondLastDigit Mod 2 = 1 ThenCells(i, "B").Value = "男"ElseCells(i, "B").Value = "女"End IfElse' 处理无效数据Cells(i, "B").Value = "无效"End IfNext i' 处理完成后的弹窗提醒MsgBox "性别识别完成!"
End Sub
这篇关于Excel快速判断大量身份证性别,VBS代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!