excel如何取单元格最右边括号内的字符串

来源:百度知道 编辑:UC知道 时间:2024/06/18 10:16:52
单元格字符串中不只一个括号,单元格字符串长度不等,如何取单元格最右边括号内的字符串?

如:
A1 数据(第一次修订)*取出第一次修订*
A2 数据(第一次修订)(第二次修订)*取出第二次修订*
A3 数据(第一次修订)(第二次修订)(第三次修订)*取出第三次修订*
永远取单元格最右边括号内的字符串(不包括两边括号)

=MID(A1,FIND("@",SUBSTITUTE(A1,"(","@",LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))))+1,FIND("@",SUBSTITUTE(A1,")","@",LEN(A1)-LEN(SUBSTITUTE(A1,")",""))))-FIND("@",SUBSTITUTE(A1,"(","@",LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))))-1)

假如你的数据在工作表sheet1的A列。
1、摁下组合键ALT + F11,进入VBA编辑器。
2、双击左上角工程资源管理器里面的sheet1,在右侧的代码区粘贴代码如下

Sub 获取左后一个括号内数据()
For i = 1 To [A65536].End(xlUp).Row
str1 = Cells(i, 1)
str1 = RegExpTest("\(.*\)", str1)
If Len(str1) > 1 Then
s2 = Split(str1, "(")(UBound(Split(str1, "(")))
s2=left(s2,len(s2)-1)
End If
Cells(i, 2) = s2
s2 = 0
Next
End Sub

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' Create variable.
Set regEx = CreateObject("VBSCRIPT.REGEXP")