首页 > 解决方案 > Vba代码根据括号和括号前后的空格分割单元格

问题描述

我有一个 excel 文件,其中有一些单元格,括号中和括号外有几个文本。我想拆分单元格。例如,我有一些像这样出现的单元格

(some text in) parenthesis and (others outside)

我会拆分单元格,以便some text in在不同的单元格中,parenthesis and也在不同的单元格中,也在others outside不同的单元格中。到目前为止,我所拥有的只是拆分括号中的内容。提前致谢。下面是我的代码

Sub StripCells()

Dim r As Range, i As Long
With CreateObject("VBScript.RegExp")
    .Global = True
    .Pattern = "\(([^\)]+)\)"
    For Each r In Range("a1", Range("a" & Rows.Count).End(xlUp))
        If .test(r.Value) Then
            For i = 0 To .Execute(r.Value).Count - 1
                r(, i + 2).Value = "'" & .Execute(r.Value)(i).submatches(0)
            Next
        End If
    Next
End With
End Sub

标签: excelvba

解决方案


如果您的所有单元格都以“ ( ”开头,则:

Sub fracture()
    Dim r As Range, a, arr, i As Long

    For Each r In Range("a1", Range("a" & Rows.Count).End(xlUp))
        arr = Split(Replace(r.Value, "(", ")"), ")")
        i = 0
        For Each a In arr
            If i <> 0 Then
                r.Offset(0, i).Value = a
            End If
            i = i + 1
        Next a
    Next r
End Sub

在此处输入图像描述


推荐阅读