以下是利用 VBA 编写代码从 C 列的身份证号码中提取年龄的示例：


Sub GetAgeFromID()

    Dim lastRow As Long
    Dim i As Long
    Dim id As String
    Dim birthYear As Integer
    Dim age As Integer

    lastRow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row  ' 获取最后一个非空单元格的行号

    For i = 2 To lastRow  ' 从第二行开始循环
        id = Right(Range("C" & i).Value, 18)  ' 获取身份证号后 18 位
        birthYear = Left(id, 4)  ' 获取生日年份
        age = Year(Date) - birthYear  ' 计算当前年份与生日年份之差，得到年龄
        Range("D" & i).Value = age  ' 将年龄写入 D 列
    Next i

End Sub

这段代码会从第 2 行循环到最后一行，获取 C 列中每个单元格后 18 位字符，从这 18 位中截取生日年份并计算出年龄，最后将年龄写入 D 列对应的单元格中。

注意，上述代码假设身份证号后 18 位是生日和其他信息的组合，你的实际情况可能不同。比如说，如果你的身份证号中包含了出生日期，那么提取生日年份的方法就不同了。
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence