一位粉丝朋友,提到工作中常常需要处理一些包含身份证的表格。这些表格中的身份证号码从系统中导出后,在号码前面或中间添加了一些随机字符,如下图:
如何快速提取出有效的身份证号码呢?仔细观察会发现,有效的身份证号码字体颜色是黑色的,而参杂进来的字符是接近白色的。那么我们只要从字符串中提取字体颜色是黑色的字符即可。以下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文档。