重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
完整代码
Dim fullname As String, commaposition As Integer, i As Integer
For i = 2 To 7
fullname = Cells(i, 1).Value
commaposition = InStr(fullname, ",")
Cells(i, 2).Value = Mid(fullname, commaposition + 2)
Cells(i, 3).Value = Left(fullname, commaposition - 1)
Next i逻辑说明
- 循环跑过 A2 到 A7 这几行的全名数据
- 用
InStr(fullname, ",")找出逗号在这个字符串里的位置 Mid(fullname, commaposition + 2):从逗号后面第 2 个字符开始截到结尾,取出名字(跳过逗号和后面那个空格)Left(fullname, commaposition - 1):从开头截到逗号前一个字符,取出姓氏
学完你会
常见错误
Mid的起始位置少加了跳过空格的偏移量,名字前面多一个空格- 循环范围写死成
2 To 7,数据笔数变动后忘记同步调整 - 全名格式不是「姓, 名」(比如没有逗号),
InStr找不到逗号会返回 0,导致Mid/Left截取位置算错
Sources
Blog / Website: