Excel 使用 VBA 对内容进行分割

Excel 使用 VBA 对内容进行分割

首先要在 excel 中将开发工具菜单显示出来
选项->在功能区显示“开发工具”选项卡

进入开发工具->Visual Basic,选中左侧对象,点击插入->模块

然后在右侧就可以写脚本了,这是写好的一个
功能是将A 列字符串,分为名称,型号,单位三个字段放到 BCD 三列中

Sub RenRen()
Dim sh As Worksheet
Dim line As Integer
Dim reg As New RegExp
    With reg
        .Global = True
        .IgnoreCase = True
        '.Pattern = "^(.*[\u4E00-\u9FFF]+)\s*((ф|φ|Φ|¢){0,1}([\d[a-zA-Z])+|\(|(].*(\d|[a-zA-Z])*)(\(|()(.+)(\)|))$"
        .Pattern = "^(.*[\u4E00-\u9FA5]+)\s*(.*)(\(|()(.+)(\)|))$"
    End With
Dim mc As MatchCollection
Dim m As Match

Set sh = Worksheets("sheet1")
line = 1
Do
    Set mc = reg.Execute(sh.Cells(line, 1))
    If mc.Count >= 1 Then
        sh.Cells(line, 2) = mc(0).SubMatches(0) `取第一个括号中的内容
        sh.Cells(line, 3) = mc(0).SubMatches(1) `取第二个括号中的内容
        sh.Cells(line, 4) = mc(0).SubMatches(3) `取第四个括号中的内容
    End If

    line = line + 1
Loop Until sh.Cells(line, 1) = ""

End Sub
2015-09-24 20:312