爱联系——助你更熟悉办公软件!

让错误的身份证号码自动变红色(VBA支持)

来源:原创    更新时间:2018-04-10 23:45:48    编辑:Legend    浏览:3057

日常生活中,常常将身份证号码输入错误,本例通过vba监控,及时校验身份证号码的正确性(若输入成别人的身份证号码无法识别),将错误号码显示为红色并发音提示。
 

最终效果

打开Excel或WPS表格,切换到VBA编辑器:

双击左侧的sheet1(如是其它表名请自行选择),把以下代码复制到右侧弹出的窗口:



'代码开始
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column = 4 Then '要输入身份证号码的列,根据你要输入的列修改
        St = Target.Value
        Su = 0
        For i = 17 To 1 Step -1
            Su = Su + Mid(St, i, 1) * ((2 ^ (18 - i)) Mod 11)
        Next
        If UCase(Right(St, 1)) <> Mid("10X98765432", (Su Mod 11) + 1, 1) Then
            Target.Font.Color = vbRed
       Else
            Target.Font.Color = vbBlack
        End If
    End If
End Sub
'代码结束

调整好以后,回到表格,在D列输入身份证号码,如果正确就会显示黑色,错误显示红色。

除红色提醒以外,还可语音提醒。在VBA编辑器界面,单击工具菜单-引用,找到Microsoft Speech Object Library,并在前面的框中打上勾,然后点确定。

代码做如下修改:

'代码开始
Public LD As SpVoice
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column = 4 Then '要输入身份证号码的列
        St = Target.Value
        Su = 0
        For i = 17 To 1 Step -1
            Su = Su + Mid(St, i, 1) * ((2 ^ (18 - i)) Mod 11)
        Next
        If UCase(Right(St, 1)) <> Mid("10X98765432", (Su Mod 11) + 1, 1) Then
            Target.Font.Color = vbRed
            If LD Is Nothing Then
                Set LD = New SpVoice
            End If
            LD.Volume = 100
            LD.Speak "错误", SVSFlagsAsync
        Else
            Target.Font.Color = vbBlack
        End If
    End If
End Sub
‘代码结束

切换回表格界面,输入错误的身份证号码,便可语音提示错误。当然,你可以改成其它的提示语音。


上一篇:已经是第一篇

下一篇:让excel像wps一样出现个阅读模式

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

点击排行

随机新闻

评论排行榜