Excel – 在VBA中使用正则expression式分割单元格,保留分隔符

我在Excel中有一行单元格,它遵循以下语法:

随机文本值( randomnumberrandomtext

我有一个VB脚本使用正则expression式分割文本:

Public Function SplitRe(text As String, pattern As String, Optional ignorecase As Boolean) As String() Static re As Object If re Is Nothing Then Set re = CreateObject("VBScript.RegExp") re.Global = True re.MultiLine = True End If re.ignorecase = ignorecase re.pattern = pattern SplitRe = Strings.Split(re.Replace(text, vbNullChar), vbNullChar) End Function 

我正在使用的分隔符: (VALUES)+(\s+)+(.)+\d+(,)

这导致文本被拆分为:

randomtext

我想要实现的是在脚本find分隔符后分割文本,创build这个:

随机文本值( 随机

但我找不到一种方法来正确地增加我的脚本来这样做。 任何人都看到解决scheme

没有正则expression式既不分裂:

更快:

  Left(text, InStrRev(text,",")) 'Truncate string after last comma 

更安全(假设VALUES (不会在第一个randomtext出现):

  Left(text, InStr(InStr(text,"VALUES ("),text,",")) 'Truncate string after comma which is after "VALUE ("