ExcelVBA从混淆后的身份证号中提取真实身份证号

科技大人说 2024-08-12 01:01:42
发现问题

一位粉丝朋友,提到工作中常常需要处理一些包含身份证的表格。这些表格中的身份证号码从系统中导出后,在号码前面或中间添加了一些随机字符,如下图:

如何快速提取出有效的身份证号码呢?仔细观察会发现,有效的身份证号码字体颜色是黑色的,而参杂进来的字符是接近白色的。那么我们只要从字符串中提取字体颜色是黑色的字符即可。以下VBA代码就是用来提取字符串中的黑色字符的,如下图所示:

运行代码,如下视频所示:

运行该VBA代码后,有效的身份证号码被赋值到了B列的单元格内。同理,也可以从混淆后的电话号码中,提取有效字符。

思路总结:

1、观察这个字符串中的“有效”字符和“无效”字符有什么区别。发现颜色不同,有效字符是黑色的,而无效字符是其他颜色。

2、找方法,有没有方法可以只提取字体颜色是黑色的字符。

3、找到方法后,开始写代码。

代码如下:

Sub Font_Color_Cut()

Dim i1, i2, Str1

On Error Resume Next '忽略运行过程中可能出现的错误

Set mySheet1 = ThisWorkbook.Worksheets("Sheet2") '定义工作表Sheet2

For i1 = 2 To 3000 '从第2行到3000行

If mySheet1.Cells(i1, 1) <> "" Then '如果单元格不是空白,则

Str1 = ""

For i2 = 1 To Len(mySheet1.Cells(i1, 1)) '对单元格里面的每一个字符进行扫描

If mySheet1.Cells(i1, 1).Characters(i2, 1).Font.Color = RGB(0, 0, 0) Then

Str1 = Str1 & Mid(mySheet1.Cells(i1, 1), i2, 1)

End If

Next

mySheet1.Cells(i1, 2) = Str1 '把拼接的字符写入同一行的B列单元格

End If

Next

End Sub

免费获取资料

私信:“VBA提取身份证”,免费获得文章中的Excel文档。

0 阅读:0

科技大人说

简介:感谢大家的关注