excel限定输入身份证号

原问题:excel限定输入身份证号
分类:软件 > 最后更新时间:【2016-12-16 00:50:42】
问题补充:

excel 单元格怎样设置只能输入大写字母和数字,其他汉字、小写字母、符号等之类的都不能输入,同时位数只能是18位,且限定区域内不能有重复数据

最佳答案

Private Sub Worksheet_Change(ByVal Target As Range)

'验证刚刚输入(或粘贴)的一个单元格的数据是不是工作表中唯一的正确的身份证号码

'限定区域为A列

Dim n%, i%, j%, k%, xishu, shuzi(18)

On Error GoTo 200

If Target.Column > 1 Then Exit Sub

If Target = "" Then Exit Sub

If Len(Target) = 18 Then

xishu = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)

For i = 0 To 17

shuzi(i) = Mid(Target, i + 1, 1)

Next i

k = 0

For j = 0 To 16

k = k + CInt(xishu(j)) * CInt(shuzi(j))

Next j

k = (12 - k Mod 11) Mod 11

If k = 10 Then

If shuzi(17) = "X" Then

If Application.WorksheetFunction.CountIf(Range("A:A"), Target) > 1 Then Target = ""

Else

Target = ""

End If

Else

If CInt(shuzi(17)) = k Then

If Application.WorksheetFunction.CountIf(Range("A:A"), Target) > 1 Then Target = ""

Else

Target = ""

End If

End If

Else

Target = ""

End If

Exit Sub

200 If i = 0 Then Exit Sub

Target = ""

End Sub

最佳答案由网友    提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
14

分享到:

其他回答

其它网友回答:
我也想问问问怎么弄

其它网友回答:
这个需要自己进行编程的哦

其它网友回答:
更改单元格属性

其它网友回答:
要更改输入模式的

其它网友回答:
18位身份证号

其它网友回答:
限定身份证号码输入18位数值,如果少于或者多于18位,excel就会做出相应的报警提醒,要实现这一目的,excel中有一个数据有效性的功能可以实现这一出错报警的效果。

其它网友回答:
首先将输入身份证的单元格格式设置为文本

其它网友回答:
选择单元格,数据→数据有效性→文本长度→等于→18

    推荐