Microsoft Lab
全部软件
Excel字符串处理(String Manipulation)约 3 分钟

Separate Strings 拆分字符串(VBA 版)

重点内容


适用版本

桌面版通用(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:

  1. Separate Strings
只记在你的浏览器里,换设备不会同步。