czy版主11楼的代码就能解决你的问题,且与重名没有关系,回复时没注意,帮你整理下czy版主的代码,你试一下
For Each r As DataRow In DataTables("储蓄积分").DataRows
If r("身份证号码").Length = 18
Dim dr As DataRow = DataTables("储蓄积分").Find("身份证号码 = '" & r("身份证号码").SubString(0,15) & "'")
If dr IsNot Nothing Then '如果找到的话
dr("身份证号码") = r("身份证号码")
End If
End If
Next